As part of my research for Degunking Essentials (basically a condensation and updating of my three Degunking titles) I happened upon a free disk defrag utility that's worth trying: UltraDefrag. It's open source and hosted on Sourceforge, meaning it's safe—at least if that's where you get it from.
The defrag utility built into Windows 2000 and XP is a crippled version of Diskeeper. It defrags but does not compact—that is, it does not consolidate the defragmented files toward the low end of the hard drive, and sometimes leaves a large number of contiguous files scattered around on the drive. The commercial version of Diskeeper is quite good and I bought it years ago, but UltraDefrag seems to do everything Diskeeper does, and it's free. UltraDefrag compacts files, separating files and free space. As an option it can also defragment the page file at boot time, something I've never done. (I don't perceive any increase in responsiveness having done it, though. I doubt it has to be done very often.) The UI is less whizzy, but results are what you're looking for, not flashy graphics. UltraDefrag is small, simple, reasonably fast, and easy to use. Get it here. Highly recommended.