Vista's defragger is slow and inefficient, taking upto 9 hours on a 200GB drive. When I used to run Vista* on my laptop, I used Diskeeper 2008 Pro for the defrag, and it was far better than Vista's slow defragger. Although the principles of operation were superficially similar, DK was really quick, efficient and thorough in it's defrag, even when on fully automatic mode. No churning of the disk for hours, or skipping fragmented files, unlike with Vista's own. DK was unfortunately not free, but was good enough for me to buy it.
* I no longer run Vista. After I upgraded my laptop HDD to 500GB, I run XP pro SP3 on it, and now I wonder why I ever stuck with vista for nearly a year
PS: VSS service impedes defrag to an extent on Vista, so be careful while choosing third party defraggers, whether free or paid. Select one that has VSS compatibility. Also, I don't think Diskeeper 08 is available anymore; i believe a newer, more powerful '09 version is out now.