Third-party defraggers are almost all better than the built-in defragger. It's adequate, but that's it. 3rd-party defraggers do things like defragging the swap file and the master file table, which XP's doesn't.
Booting 9x into safe mode to defrag can't be a good idea. If you've ever looked at device manager in safe mode and seen the hard drive settings, they're in "MS-DOS compatibility mode", meaning SLOW. While there may be no background tasks to interrupt the defragger, it's bound to take a lot longer to do it. All you need to do is shut down any background tasks/utilities and just leave the computer for a while, and it'll work just fine.
As for XP, defragging works fine in normal mode, but I don't try to use the system while it's running. Using NT4 and 2k, running DiskKeeper, even though it claims it doesn't have to stop for every little write to the disk, I still found that it took quite a while longer than if I just left the system alone.