It's not inherently a bad idea.
VPS solutions in my experience are generally a bad idea for anything with high disk activity, if they don't have the right infrastructure. They can be made to work in high disk i/o situations, but mostly that doesn't happen with low-end VPS providers (Linode / Slicehost etc.)
DNS is generally quite a low resource intensive service. It requires nowhere near the same infrastructure to provide the same service as a database server or webserver. So a VPS solution should be fine for a DNS server, providing you're happy with your providers uptime.
You should be:
- Running more than one DNS server. Two at least, preferably three for high volume uptime critical hosts.
- The DNS servers should really be in completely separate locations. Yes, physical locations. If that's not possible, at least physically separate networks.
There are some exceptions to this rule. Targetting DNS servers is a common attack mechanism for criminals (particularly those who try and extort money from sites). If you're hosting high risk websites (high turnover websites like bookmakers would be in this high risk category), my advice would be to outsource your DNS to someone like UltraDNS. This is of course, providing that your webservers are harder to DDoS than your DNS servers!
So, bottom line, two DNS servers with two separate VPS providers I would approve of for any small to mid range hosts.