Most people can relate to the idea of drink driving being dangerous. Most have been drunk, most can drive, and therefore most can see that doing the two at the same time is bloody stupid. Meanwhile, the general population do not understand the notion of attack surfaces, escalation of privilege, or IT security in general. Before we can even start to train the next generation of software developers to write secure code, we need to train the next generation of users in the basics of IT security. We don't need the CISSP to be put on the year 10 curriculum... but the GCSE Sec+ wouldn't hurt. Hell, this may even lead to politicians who understand that re-running the crypto wars is a Bad Thing.
Rather than a campaign against writing shit code, I'd sooner we had a campaign against running shit code. Writing shit code will dry up pretty quickly once the user base are culturally conditioned to refuse to use it.