I have a feeling and a hope that, as the software development industry gains maturity, it will also gain some better, more solid theories and practices of project management. We have had some false starts in this area, I think, and also some very good developments, too. New languages and new tools are always being advanced, enabling new features that let us set up some really solid patterns of architecture. However, I still run into as many bad managers as good ones - those who don't understand software projects in general, or those who don't understand programmers. The clients, also, underestimate how long it takes to get something done, so unrealistic expectations are set. There is as much bad software as good in the world, or probably even more.
Would it help to teach everyone to program as part of the school curriculum? Yes, of course. It doesn't mean it's something we really need to do, though. I'm sure there are plenty of accountants, pastry chefs, firefighters and jet pilots who wish everyone knew more about their jobs to better appreciate how hard they are and how to set realistic expectations. It's probably better to develop a specialised course - "Programming For Non-Programmers" - to instill some of the necessary skills and knowledge for people when they need it.
Mokalus of Borg
PS - I've made it as far as that title before.
PPS - Maybe someday I'll put together at least a hypothetical course outline.