For future reference, you should always code styles for standards-compantible browsers (like Firefox) before any other browser. IE is a broken browser and likes to "guess" at what you want it to do, even when you've coded improperly. Many times, it guesses correctly, but a lot of times, it does not and throws things off.
If you create your styles for standards-compatible browsers, then the site eill lay out fine in pretty much ALL browsers, except IE. Then it's just a matter of adding a secondary stylesheet (with only a few lines of "fix it" code) in a conditional comment.
In regards to this post, IE likes to add mysterious margins and paddings to block-level elements - which is probab;y why you were seeing it nicely in IE, but Firefox was reading the stylesheet correctly - as most browsers will.
Fixing for IE is not a good ideas, unless you really want to specifically alienate people from using a good browser when they come to visit your site.