So there's many tricks to optimising the size of a VHD. One which I always use, but appears not to be widely known about, is to turn of the system file checker. Of course, this has it's downsides and your mileage may vary. In practice you can reduce a VHD by some 300M or so on an instance of Windows 2003 SP1.
To turn off SFC, open a command prompt (must be elevated if run on Windows Vista or Longhorn Server) and run
Then perform the standard compaction routine (if this is a dynamically expanding disk).
[Corrected 8/16 as per comments, 300K isn't much of a saving. I did indeed mean 300MB;)]