I use Defraggler, and I defrag my smaller drives/partitions completely every week. The big drives/partitions take hours, so I only defrag the files that need it. I do notice a difference, especially on my C: drive; less disk thrashing and faster loading of programs.
Every four days, I run "rundll32.exe advapi32.dll,ProcessIdleTasks" as an automatically scheduled batch file. It's supposed to run without any help when the PC is idle, but since I run Folding@Home 24/7, it's never idle. Speeds up bootup noticeably.