The reality, especially for businesses who rely on productivity, is that computers are only good for about 3 years. Now this isn't to say that computers will all die after three years and a day, but even a functioning computer isn't necessarily a "working" computer. What it really comes down to, is the cost of time and the drain on resources to keep a computer running "past it's prime."
Now part of the reason that electronics just aren't build like they used to be, is because of the quality of components we're putting in them. Back in the day (and what made this post come to mind) RAM was not a cheap thing that you could just buy extra and throw into a computer. In fact, I was digging through some of my spare/scrap components the other day and came across a stick of memory with a price tag still on it.
|512MB DDR 333 - $305.32|
Part of that price reduction is technology advancement and better manufacturing, but part of it is also cheaper components. Why do they use cheaper components? Because technology is moving so fast that computers are obsolete in such a short period of time, that building them to last forever is silly. This is one of the reasons that 20 years ago computers cost $3-5000, and today they cost $3-500.
So, what makes the computer obsolete so quickly? The first (and foremost) thing is advancement in technology, the underlying hardware that runs computers advances so rapidly that major new product lines are put out every year. With these new advancements in hardware software vendors continue to advance their offerings based on the newest technology. Things we take for granted like Adobe Flash, Java, Quicktime - all of these advance over time as well, they use more processing power and more resources to do the same job they used to do. This leads to older computers starting to feel slow, even if all you do is keep your programs up-to-date.
So whats the moral of the story? Don't hang on to hardware just because it still works, computers are built to be cheap and easy to afford, and they're also built with an expiration date.