I use Diskeeper to defrag
as it is much faster, completely transparent and it prevents fragmentation.
Also, MS Disk Defragmenter was developed in collaboration with Diskeeper back in the days of Windows 2000, so Diskeeper works very well with Windows.
Here is a link about the co-development of Disk Defragmenter:
Here is a review that talks about Diskeeper's transaprency and ability to prevent fragmentation: