Well that would be because you've designed it for the none-standards compliant browser! You'll find it a lot easier to code a web site for Firefox and then use hacks/conditional statements to get the correct rendering in IE, rather than the other way round.
The first thing I would add, if I were you, is the
Universal Selector as it will completely zero out all margins in IE and Firefox, giving you a more supple base to begin building your pages on. IE and FF add their own, so cancelling them out makes it much easier to build a page that looks the same in both browsers.
To center your page you don't need all those negative margins and positioning, just use:
Code:
#maincontainer {
width: 776px;
height: auto;
margin: 0 auto;
overflow: hidden;
}
I'm not sure what you are using as a background to your site, but it would be best to put it here so that it would stretch the height of the container div, and therefore all of your content.
Your footer would probably be better placed inside the container and all of that positioning removed again:
Code:
#footer {
width: 780px;
height: 31px;
background: url(images/footer.jpg) no-repeat;
float: left;
}
Just some tips to start with... plus you have some validation errors it would probably be worth sorting out too.