Sorry, I forgot... here is Microsoft say about the body tag (taken from MSDN) : When you use the!DOCTYPE declaration to specify standards-compliant mode, this object no longer represents the entire surface onto which a document's contents can be rendered. The object can obtain its size from its content, or you can set its size explicitly—like a div object.
The width and height css styles are not supposed to be applied to the body tag, but you have to apply it (width:100%; height:100%;) in order to align vertically. Otherwise, as MS say, the body will not have the length of the window, but the length of the content.
I know this is not an ideal situation, and it won't work in Netscape 7 or Firebird / Firefox. If you want to align vertically, you have to drop the doctype, then you don't need to add the width and height attributes to the body, which don't work anyway in the best (but not most popular!) browsers.
Dropping the doctype makes your HTML illegal from the w3c's point of view. Anybody can comment the implications of doing so?
But, keep in mind that if the vertical center alignments works in IE, the styles you have to add don't make the page not-dispplayable by other browsers. The tags are just ingored by other browsers.
So my advice, add the width and height to the body style, as long as the design is not destroyed if the alignment don't work. If the design depends heavily on vertical center alignment, consider a change of design!
By the way, you could add a 100% height to any tag inside the body (div for example) and it won't do any good. All the relative heights depend on the top-tag, which is body. And this one in return depends on the length of the content. An absolute height (800px for example) won't do it either since you have no idea of the user's screen height.
A simple problem made complicated :)