Once a week for me. You can set it up in the schedule service:
Start -> Control Panel -> Scheduled Tasks
Add Scheduled Task and look for defrag.exe
Or add the task directly from the cmd line (using the AT command)
Point to a .cmd file which contains something along the lines of:
defrag c: -v > c

defragc.txt
defrag d: -v > c

defragd.txt
defrag f: -v > c

defragf.txt
(the grimacing face should be COLON BACKSLASH)
I let this run for my discs c, d, and f at say 2am and you wil a regularly defragged disc, and the txt files let you see how things have progressed.