Frankly, I upgrade when I get the urge. I recently went from an i7-860 to an i7-3770K simply because I wanted to build a new machine. I gave the old machine to my daughter.
I've never had a computer "breakdown" to the point where it wasn't fixable and I've had a lot of computers over the last 28 years that I've owned them.
The number of years I've had a particular computer doesn't play a part in when I upgrade, mostly I get the urge because of some newer technology or feature that comes along.
This ^
The only difference is my old machines go to my son. That uncontrollable, addictive urge to build a new machine, over takes my common sense about once every 3 years.