Defragmenting generally has only a limited level of performance improvement. In the past it was a good idea because RAM was so small and disk data blocks were not cached. Now days, they get cached in special RAM in the drive, sometimes in the controllers, too, if you're using SCSI, and in the OS itself (AIX, BSD, Linux, OS/X, Solaris, and modern flavors of Windows). I work most extensively with Linux and Unix, and defragmenting is just not really done (some tools exist, but no one really uses them). The only times where it might really matter are files that never get rewritten anyway, or very large databases (4 to 400 terabytes) which can be dealt with by skipping filesystems and running the databases directly on the disks.

For NT, W2000, W2003, and XP (or any Unix like system), I just wouldn't worry about it as long as you have sufficient RAM.