There are way too many sites out there that have their "Page Not Found" web pages return a 200 header status code, instead of a 404 code or a 301. The issue with showing a 200 code to spiders or others is that it means that your page that no longer exists, technically does exist. If you return a 404, it technically means the page does not exist. If you return a 301, then you say that page has been moved.
A WebmasterWorld thread has discussion around the topic of serving up a 200 status code on these not found pages. Tedster, WebmasterWorld administration, said "over time, can destroy your site's rankings. You are essentially telling Google to index the same content for an infinite number of URLs."
I'll be honest, some of our coders here set up the "Not Found" pages are 200. I then get upset and we fix it. I got really upset on Tuesday, where I made our senior developer write a script to go through all our web sites (hundreds of them) and check to see if any 404 pages returned a status code other than a 404 or 301. We found about four sites that did and we fixed all of them.
Writing a scrip that goes through your sites on a scheduled basis and checks for this type of issue might be a good idea, if you have many sites to manage. Server configurations change over time, you make changes to sites, and you add new sites. People are human and they forget to do a thing or two, here and there. So stop being human (kidding) and set up a program that checks this stuff automatically.
Why? Well, it can come back to bite you later.
Forum discussion at WebmasterWorld.