I defrag before I install any new program or after I uninstall one. You can only get fragmented files if you delete several small files and then write a large one in that same place. So if you don't delete many files - defragging does virtually nothing.
But I really don't think it matters that much. I've done extensive benchmarking before and after defragging and the most I've ever seen is just under 5% improvement in one program. Most of the time though, it was 0% to 2% improvement and we all know that 2% is within the margin of error of a benchmark. If I remember right, that 5% was when running from floppies - when a program takes 2 minutes to load 5% was almost noticible (it saves a whopping 6 seconds). But now that hard drives are much faster a program that takes 2 seconds to load will speed up by as much as 0.1 seconds. Really, is that up to 0.1 second noticible?
I find it silly to have your hard drive work so hard which can lead to earlier failure, to make your computer unusable for quite some time, and to use the extra electricity for less than 5% disk speed improvement. So to me, anything more frequent than 1 month seems like a real waste. People (often those with less computer knowledge) think you must defrag weekly or daily and it is some mystical cure to computer problems. I can't count the number of times I've heard someone complain that something doesn't work and then heard someone ask, "did you defrag"? Defragging only changes the speed (marginally) - it doesn't fix anything...