Given that some old but no longer applicable answers really are great, it would be a shame to remove them. (They would be good grist for future TeX archaeologists.)
On the other hand, as has been pointed out in another answer here, adding a "warning" answer to a question with highly-upvoted answers would not necessarily be noticed readily by someone (in particular a newbie) as it will start off with zero votes, and the likelihood of it becoming the "top" answer is negligible.
What about trying to formulate a "stock" statement that can be added at the top of the question itself, that documents the fact that while the answers given were valid at the time, as of <date> they no longer apply for <reason>. Such a statement could be inserted with a colored background, and whoever adds it should sign it. Formulating such a "warning" statement would be a reasonable topic for a meta question.
I would be happy to do this, at least for questions for which I submitted an answer, if I happen to come across them, or if prompted by someone else who finds such a problem entry.
Edit: In a comment, @Skillmon points out that some old, highly upvoted answers are outdated, although the original question is still valid, so it would be misleading to mark the entire posting as obsolete. In such a case, it would be appropriate to mark the answer(s) only, leaving the question intact.
Even some "current answers" are bad, although they satisfy the OP and are accepted. I usually address those by adding a comment saying why they don't work (or don't work in a more general case). I suspect that such comments aren't often seen by a newbie looking for a quick fix, but I feel that editing the answer is bad manners. I don't feel that way about an answer that is several years old and outdated by an actual change in the core or a package.