I can't identify the problem, but if you've got a problem with Internet Explorer (and who doesn't?), then Conditional Comments are your friend!
They let you add code that only active in IE, or a specific IE version. Sample:
<!--[if IE]>
alternate style or stylepage for broken IE implemention of CSS
<![endif]-->
<!--[if IE 7]>
Fix for something broken only in IE7, not any other version.
<![endif]-->
Both of these will do nothing in any other browser -- they become just another harmless comment. If you're feeling hate towards those pesky IE6 users, you can target them for a nag to upgrade (either to another browser, or a more recent version).
EDIT: found it
Before IE8, IE had issues with floats and layout. I think this will work, since I used something similar under similar circumstances.
You need to add a conditional comment containing a blcok-levelelement to FORCE the #content DIV below the header DIV. This should be empty, and force everything below it.
Try adding the following between the end of the header div, and the declaration (line 79). If you see too much space between the header and content, you can tinker with it.
<!--[if IE 7]>
<div style="clear: both; width: 100%; padding:0; margin:0; height:1px;"> </div>
<!-- Fix for IE box model issues with content div -->
</div>
<![endif]-->