The best defragmenter is the one provided with Windows.
The reason is that it works with the Prefetch to group together on the disk the files that will be requested at the same time, by Windows or by the applications.
This is why Windows' defrag takes more time than competitors, especially on Xp and later. But the result is way better.
Just compare the result, both by listening to the active drive, and by measuring the load times.
To force some files on the outer zone, one possibility is to have several volumes on your disk. Put Win and the applications in the first volumes, Mpeg/mp3/downloads/Dvd images on the last ones.