Defrag is a total waste of time, not because there is no gain - but because the gain is so small that it is not worth the time it takes to run the defrag. The reasoning:
NTFS is an efficient file system and with the fast seek times, NCQ and large cache of modern Disks having non-contiguous files is not such a problem.
Running defrag mostly benefits large files, e.g. page files, Databases and movies files. Fixing the size of your page files prevents it from fragmenting, same as databases. DVD rips and movie files are not effected by fragmenting (for example you watch the movie over an hour or two whilst it caches or streams, a few milliseconds delay is not an issue).
Programs that run hundreds of small files, such as an OS boot, will be effected more by the physical placement of the files on the Disk, rather than the degree of fragmentation. So if you could line all the files that windows use to load, sequentially on the very edge of the hard-disk, your OS should boot quicker. (You can actually do this by short formatting your HDD, they do this with SANS to improve the benchmark scores!).
Now if you consider the above, and the fact that it takes a very, very long to format a disk and the benefit (if any) will be very small - then it hardly makes it worth the effort.