>>and before you do, don't say "It's because IE sucks, get mozilla." over 95% of my readers use IE, so let's not go there :P<<
Well, there *is* a good reason for saying this. "Get Mozilla" is not just to fix it for *you*, it's to fix it for everyone. Mozilla is a standards-compliant browser. Which means if you get the site laid out correctly in it, most all browsers (except IE) will also display it correctly. Then, all it takes is a conditional comment for IE to fix IE's weirdness.
In your case, I suspect it's the infamous 3 pixel margin that IE adds on to divs and such. Doesn't take much to cause a div to be too wide, and force it down. IE likes to add this mysterious 3 pixel margin to things, so you'd need to insert a conditional comment in your header to remove it.
Your code is quite abit to look at, so I'm not sure if this is your only problem, but I'm sure it's one of them.
So, the "get mozilla" thing *is* a valid statement. IE is *whacked*. You shouldn't be trying to break all browsers out there so they're as screwed up as IE is - just code it right in standards-compliant browsers and fix IE after. Makes life a whole hell of a lot easier.