I don't know of any reason for putting DNS in a DMZ but I would make sure there are no other services running on your DNS servers if they are published on the Internet. For the same reason, you should not store files on these servers either. If you have your domain registered on the Internet, you have no choice but to publish the IP addresses of at least two DNS servers for your domain and this gives the bad guys a place to start when attacking your network. If there are no other services to exploit and there is data to steal on your DNS servers, attackers have to work harder to find hosts on your network that will give them what they want. Putting your Web and FTP servers in a DMZ, however, is an excellent idea, since outside users are actually accessing content on these servers.