It hardly ever seems necessary - see below - and on today's huge drives it could take forever.
"Taking forever" is a problem for me in a number of ways. It tends to eat up resources like crazy, so that you don't have the full use of your machine for a long time. Plus, I just don't trust the process to be 100% tested when it comes to surviving, say, a power-related failure - of which we still have too many around here in the lightning-strike zone of the highveld. There is, of course, an alternative. And it is pretty much guaranteed to be safe. So read on.
Why would I need to defrag? Files comprising more than one cluster may end up spread across the disk, necessitating long seek movements when reading the whole file. The extent to which this happens is a function of your specific usage profile and of the free space management algorithms of your operating system. Any file that fits completely in one cluster doesn't qualify for the role of troublemaker. And if you use NTFS any sufficently small files will even live inside the directory, so you don't even incur a seek operation moving from the directory to the file.
So, if I have lots of smallish files there is no fragmentation to start with. For the rest - the larger files - things depend very much on how often files are created and deleted. If the vast majority of your files stays around they don't free up space that could lead to fragmentation - so there is no need to defragment the disk.
Another aspect is that the improved speed of the disk subsystem and the large amounts of memory your OS could reserve for caching mean that the performance degradation due to disk fragmentation is much less noticeable today than it used to be. Also remember that - owing to the high recording density - there is so much more data under a single head position (a "cylinder") nowadays, so that the time-consuming seeks don't have to happen all that often. And a "full end-to-end seek" today covers something like two terabytes rather than five megabytes on some of the earliest hard drives; the physical distance traveled is a bit shorter, too, since the 5MB drive was of the 5.25" form factor whereas the 2TB drive has a 3.5" housing.
And finally, with getting new and bigger drives all the time nowadays, we tend to copy files from the old drive to the new drive a lot. The data on the new drive is not fragmented. So here is a way to defragment your data non-destructively. It also makes a good deal of sense at today's prices to copy data to external hard drives for backup. Then, if you really feel you would rather work with the defragmented data, just swap out the original drive for the backup drive, and voila!
So, as a result of all this, I don't really get around to using the defragmentation utility any more - which is just as well, because I could see a well-filled 2TB drive being seriously rattled by the process ...