Being an upgrade junky, I usually get new parts avery 4-6 months. The beauty of the computer world is that if you can stay away from bleeding edge technology, then everything else is very affordable. I watched my MP 2100 drop in price from 1 gazzilion dollars just 6 months ago to a very affordable $200 +/-. And if you frequent the FS/T forums here and on other sites, you can get some great deals. Remember when the GF4's were $300 plus (all of 6 months ago!!)? Now I have seen them as low as $105....Just picked up a GF4 Ti4400 for $150 last month. This card was $275 when I first looked at it.
So when I make a swap in parts, I just turn around and sel what I replaced. It minimizes the financial impact of upgrading and gives someone else a chance to get a good deal on parts.
HOWEVER, I always keep a spare of these parts on hand:
1. AGP Video card. Currently I have an 8mb Vanta that I use for emergencies and Test purposes. I will never get rid of this thing as it's idiot / bombproof. I have used this more times than I care to remember.
2. CPU: They are so cheap that it's worthwhile to have a spare just in case. I picked up a XP1600 for $40 and it's just hanging out in my drawer waiting to come off the bench if the starter (MP 2100) goes down.
3. PSU: 250W generic unit that can be used in a pinch. paid $25 for it.
ps. I also have a spare Rig (Compaq US5000 with a 950mhz T-bird) that has saved the day more than once. In fact it is currently being used as I fried the MoBo on my main rig

(Which gave me the impetus to upgrade from an XP 2000 to an MP 2100 as I got a great deal on the FS/T forum for a cpu / mobo combo

)