IE7 used to be more compliant with the Standards, however stupid they are. Nevertheless, try this:
<div style="line-height:30px;">Hello!</div>
The text inside the div should be perfectly in the middle. The only problem that still persists is that for some reasons, known only to the CSS-nerds, line-height attribute does not accept percentage sizes, should you need them...