If you're on 95/98 kill every running app except explorer and taskman before you defrag.
On 2k/XP I'm not sure if theres anything specific you can do (never had the problem on there)
As for defragmentation programs I use
Diskeeper, which does it faster than the windows defragger.
[Edit: added Diskeeper link]