I had this problem in a company intranet site after we changed from IE7 to IE8. It turns out that there was a specific print-only style declaration that was setting the font size to 1.5em--too big for the printed page to work right. I solved it by changing it to 1em.
Whether or not you have a style set in the page that is causing a problem, you can try adding print-only styles to fix the problem, something like this:
@media print { body { font-size:0.75em; } }
For me it didn't seem to matter, below a certain size, what value I used for the ems--as soon as it was small enough, the printed page started to display correctly.
The microsoft forum page provided by vsingh says:
Some webpages specify exactly where text should print on the page. If the webpage you're printing specifies exactly where the text should print, Shrink To Fit will not work.
This leaves me wondering what exactly it is about the stylesheet that is supposedly providing exact specification of location (and if anyone has additional thoughts on this please comment), because there isn't a single width, height, 100% or any other positional or locational css--just the font size. In any case, I was able to work around those issues by reducing the font size specifically for printing only.