Well, I don't upgrade for any of the above reasons exactly. An important option that's missing (unless I misread or missed it) is that I upgrade when I need the computing power for a game or application that I can't run. So I can still run a lot of programs on my system as it is, but not the new ones that I want to run i.e. video editting. Sure I can still run MS Office, surf the net and play games, but for video editting, I need more space, bandwidth, computing power, video in/out, firewire etc.
In the past, I've also upgraded because of MS Operating Systems, like the jump from Win3.1 to 95.
I've also upgraded when I blew out a motherboard (has happenned 3 times).
So you can say that it is a "need" to upgrade, but not as specific or severe as some of your options.