I changed your code a little to add some colors for contrast, my old eyes need all the help they can get.
<!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;
It's easy to see when you open it in IE8 and flip back and forth between regular and compatability views.
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.