I don't have much experience with Windows server domains, so that complicates things just a bit for me. But, I think to do what you need you would want to setup a DNS cache at each of your remote sites with clients at each remote site connecting to their local DNS cache for DNS queries.
You would need to configure your DNS cache to use your DNS servers for local domain queries (local Windows domains?) and use the external ISP DNS servers for all other domains.
Here's a DNS cache server program that I believe might be useful for what you are trying to accomplish:
http://cr.yp.to/djbdns/dnscache.html