I don’t know the technical reason why this is happening but it is probably something to do with the specific line height being applied the nav elements and IE7 calculating something differently.
Just whack in some IE7 conditionals and remove 2/3px of the padding/margin as a quick fix.
Or do it properly with an extra div at the top containing the logo with a min-height declaration which determines where the nav starts.
The problem may be that IE 7 and lower positions the dropdown different from other browsers. You may need something like “left:0; top:xx;” to make the positioning work the same in all browsers.