With the new file management format NTFS defragging is not quite as necessary as often as it used to be. I have tried some other defragging programs but found that XP's own is best. However, you can make life simpler with a few additional steps:
1. When you format your hard disks always make sure you format in NTFS when asked.
2. Ideally, create seperate partitions. I always create a 'system' partition of around 20GB on which I install XP and all those little utilities and programs like winzip, media players etc. Keeping a partition small like this means that defragging it takes far less time, and this is the disk that will have most activity so it probably fragments more quickly.
3. Creat seperate partitions for games and media. Before installing any new game I always defrag my game partition to ensure that the new game goes in 'clean'...this helps speed up game loading times as well.
4. Downloads and media (torrents etc) i always put on another seperate partition or even seperate disk. Every now and then I'll back up the ones I want to keep on DVd and then reformat the whole thing in the Disk Manager.
5. To ensure your defragging doesn't get interrupted, make sure you stop all screensavers or programs likely to be running in the background. (Ctrl-Alt-Del to shut these down). Some recommend booting into 'Safe Mode' before defragging as this gives the very cleanest results possible.
If you're running a defrag over night because it takes so long, it suggests that you need to start managing your disk space