On to the CSS.
First thing I do in every CSS file is a reset. As I already said the reset you were using, the so called "universal reset" of:
Completely screws up form elements cross browser. Because all the browsers accept margins, borders, width and height DIFFERENTLY (UHG) your best bet is to leave them alone when it comes to padding.
The reset I use only turns off margins, paddings and borders on the elements that are inconsistent cross-browser. There are larger resets (like Eric Meyer's reset reloaded) that frankly are too big for their own britches and border on being frameworks (and CSS frameworks defeat the point of using CSS) while smaller ones cause too many problems. I call this one the "mama bear" reset.
hr - As mentioned I hide all the HR for screen.
body - I set up my typical default font size for sans-serif fonts and fix the line-height to 140%. I like a taller line-height for legibility, and you can't trust the default line-height to be the same across browsers anyways.
#pageWrapper -- most of my layouts do a lot more with this element... here we're just padding the bottom to make room for the fixed footer.
h1 -- the position:relative and holly hack allow us to absolute position the span over the text as our 'logo'. This is called 'gilder levin image replacement' and is an ideal technique fo having a proper structural h1 with text for the search engines and no-images users. I use a px font - which is usually bad accessibility - because we are interacting with a px height image. I avoid declaring a fixed height because of the old IE quirks box model and that frankly, it's a waste of CSS too. 24px line-height + 8px top/bottom padding makes it 40px tall. Adjust to fit your image.
h1 span -- the image replacement. I put a background color and opacity on it so you can see where it would end up... You'd want to strip the color and opacity when you put your logo image here as a background.
.menu -- since both our footer and header menus are the same style, we use this one class. Turn off bullets, wrap floats, set up a fixed metric font since we need the fixed footer to have a fixed height. (thanks to Gecko for being a retard on what %/em means). From there it's just colors. Again you'll notice I avoid declaring heights here and let the flow handle that for me.
.menu li -- setting this to display:inline avoids the "IE7 staircase bug" -- unless you are going to add dropdown menus I really suggest NOT trying to do anything more with the LI.
.menu a -- float 'em, pad 'em, style'em.
.menu a:psuedostates -- Just added some hovers for fun.
#footer -- I was going to add a expression to make 'fixed' work in IE6-, but frankly why bother at this point. It will just fall into place as if it was a normal element on the legacy browsers, so good enough. I'm retracting my previous statement and willing now to use position:fixed in designs where it can degrade gracefully like it is here.
#addDriver -- I put the form last because it's content. Stuff that's common to every page, followed by stuff unique to each. The position:relative is so absolute children treat the upper corner of the form as 0:0, and the padding makes it pretty and makes room for the absolute positioned "legend span"
#addDriver legend span -- speak of the devil. Move it, style it... Nothing fancy.
#addDriver label -- Setting inline-block lets us put a width on these... poof, instant columns. You can even add text-align to push the text up against he inputs if desired. The two -moz declarations are for legacy gecko support (Firefox 2-) -- a lot of your obscure *nix forks of FF and other gecko based browsers still need this to make it work... and it's not like 60 bytes is going to kill us. I use a EM width since I'm using EM text, that way the layout doesn't break on large font/120 dpi systems (like mine!). Amazingly a top margin will push both this and the inputs down giving us a nice spacing. I do margin top so the DIV for the 'description' is closer to the input.
#addDriver label span -- your 'required' stars. Color 'em, done.
#addDriver fieldset input -- by putting all our non-submit inputs in fieldsets we can target them without screwing with classes. I give them a nice big width and the font declaration makes sure they are using our desired fonts. (inputs do NOT usually inherit fonts).
#addDriver fieldset div -- that little 'description' of the date format. Same margin as your label width, same width as our inputs, a bit of padding and text-align to make it pretty.
#addDriver .submitsAndHiddens -- same total width as our inputs+labels (not exact, but close enough) padding and text align... Nothing fancy...
... and that's it. How I'd handle that form and layout.
Hope this helps, and maybe you'll be able to glean some useful bits from it.