We've run into a problem where some domains would stop resolving from Windows DNS. They would work fine for about a week, then they would stop. I couldn't find anything on the internet, and MS's support people had me try changing the CacheLocking stuff (disable it) by running
dnscmd /config /cachelockingpercent 0 then restarting the DNS server.
That will disable the cachelocking. Cache locking is basically saying, don't overwrite the cache until the percent of the ttl has expired. Even if it changed. Really? Cache is out of date and we have a new value, but keep using the old one? Dumb.