One of the problems with defragmentation tools like the Windows one, Diskeeper and others is that they can defragment files but they do not consolidate the free space by removing the gaps between files. Leaving these gaps causes fragmentation to occur again very quickly because Windows will write new files in to these gaps, a situation that gets worse as the disk fills up. In fairness this isn’t fault of the defragmentation software but more due to the way the NTFS file system works. When a file is moved on the disk there is a delay before Windows updates the master file table (MFT) to reflect its new location, so if the defragmentation software was to wait for these updates to complete before evaluating where to move the next file too, it could take an eternity to finish the task. To play it safe most defrag tools will leave gaps of clusters between files to avoid overwriting a cluster containing valid data.
There is a tool out called DIRMS (Do It Right Microsoft) that is a command line defragmenter that gives you the option to consolidate free space with it’s compact command, but also to move files about the disk based on date, etc. The new version I’ve not found too impressive, but if you can get a copy of 1.0.0.4 it works very well and it’s free. On a badly fragmented computer I will normally first run a pass to move the files together by date (typically puts OS files together at the front of the disk), then run a compact which will take ages to finish but after a few passes will remove most/all the gaps between files and leave you with a single chunk of free space.
Another very good tool for improving Windows boot performance is BootVIS, a free tool Microsoft supplied to OEMs for a short time to improve the time Windows XP took to boot (Google it and you’ll find a download somewhere). Using a combination of DIRMS and BootVIS you can make dramatic improvements on your system performance. If your PC takes longer than 30 seconds to boot, then you’ll make massive improvements with these tools.