Nature has an article on the data being released from the Federation of American Societies for Experimental Biology regarding the job market for those with PhDs in the biological and biomedical sciences (BBSs). The upshot is that the number of tenure track positions has pretty much flatlined since 1981 (hovering around 20,000) while the number of people receiving PhDs has increased to 7,000 in 2005. Needless to say most of those with a position are not leaving soon, creating a situation in which only 30% of those with PhDs in the BBSs have a tenure/tenture track faculty position (down from 45% in 1981). More and more, people are turning to industry (30%). The doubling NIB budget went towards many things, greatly expanding faculty positions was not one of them.
There is nothing wrong per se with PhDs leaving academia. People have different interests and talents. The problem is when you have graduate/post-doc advisors who cling to the idea of looking down at those that don't pursue a career in academia (usually narrowly defined as a faculty member at a research university). Those people are pushing an unrealistic set of expectations upon their advisees that is unhealthy. The numbers just do not support it. Anyone selling that notion is selling a pyramid scheme that primarily helps the advisor and his/her university & borders on "criminal" in my mind.
A PhD in theory should be about learning a set of intellectual skills on how to approach a problem, how to think and analyze data, etc. that can be applied to any number of career choices. That is a good thing. The US for one is a place that needs more people with scientific minds not less but realistic expectations have to be put forth.
What can be done? Well more money would help. Money to create more faculty positions while not increasing the number of graduate students a proportional amount. This would also create more competition between faculty members to attract students. This could only improve the quality of mentorship. In addition, create and pay for more higher paying research staff positions. There are people who are good researchers but are not cut out to be faculty members. Create room for those people. Let their skills be used appropriately Actually have career development staff at the university to aid graduate students and post-docs looking for positions outside academia. Really, why should faculty members have to carry this burden alone? Universities are getting overhead. It should be expected they then provide the proper resources for research labs. Career development without question fits there.
Undergraduate advisors also need to be more honest. Let those students thinking about attending PhD programs know the numbers and what is reasonable. Give them the knowledge they need to make an informed decision, that is your job.
We also need to improve the pay teachers receive. We need more science teachers teaching at the pre-college level. Make that a more attractive option. This also requires money to be spent on the resources to let science teachers teach well. Science is fun. Well thought out experiments are hands on learning. They get students to think, to learn and are significantly less boring than a lecture.
What else can be done?