An interesting suggestion came up in a forum that I read.
The suggestion was that computer manufacturers (software and hardware) should not be allowed to sell products "as is". Make them liable (at least partially) for security issues that cause monetary harm to users. That would make companies like Microsoft and Cisco stand up and take notice wouldn't it?
I don't see why this couldn't somehow be enforced -- there are consumer laws for other products -- why not computing products? Not that I have thought this through fully but it certainly is an idea worth discussing I think.