A lot of the problem with non-Admin accounts in Windows aren’t actually MS’s fault. Third party developers, including the people are work for, tend to be rather lazy and do things in a way, especially during install, that requires administrative privileges, but that way isn’t actually necessary. There are cleaner ways to do things that will work fine when done by non-admin users but nobody does it. All those same things you can do under Linux that keep you from having run as root can be done under Windows, it’s just harder programatically so nobody does it. MS has been trying to address this but so far it’s not working, it’s hard to change the habits of so many companies, especially since MS does a poor job of leading by example.
It’ll be interesting when enough programmers and users of Linux and Mac have developed bad habits that the malware guys are willing to put the work into infecting those systems. I know a few people at MS that will be laughing so hard they’ll be at risk of being committed. Not to say Windows doesn’t have plenty of its own security holes, but people with bad habits will always be a big hole.
Linux exists in a state of chaos, so "bad habits" are a real risk there.
Malware is less likely to succeed in exploiting programming errors on Macs. Mac OS X has a stable, mature application framework that can help avoid coding errors which could result in vulnerabilities. Developers are strongly encouraged to use the framework (but are not required to).