I changed your code a little to add some colors for contrast, my old eyes need all the help they can get.
It's easy to see when you open it in IE8 and flip back and forth between regular and compatability views.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
font: 10px Verdana;
margin: 30px auto;
border: 1px solid #f00;
I thought at first you were seeing some default margin/padding so added the universal reset. That didn't make any difference.
Then I noticed it... old eyes, remember? ... It's the scroll bar. IE7 is giving you a scroll bar which pushes #wrapper over.
Figure out why IE7 gives you a scrollbar when it's not needed OR force a scrollbar with all browsers by adding height:100.1%; to body.