I hope this isn't too headache-inducing.
Two servers, server1 (Windows Server 2003, IP 192.168.100.25) and server2 (Windows Server 2008, IP 192.168.100.22).
server2 is the DHCP server and a DNS server. server1 is the preferred DNS server as is set in the DHCP server options (192.168.100.25 is preferred, 192.168.100.22 is alternate); servers use static IPs.
server1 is forwarding DNS requests to server2. (I'm not sure why but it is, what that buys us.)
server1's preferred DNS server is itself (.100.25); server2's preferred DNS server is server1, and itself is the alternate.
The way I read this, clients make a DNS request to server1 which forwards the lookup to server2, server2 responds with an answer to server1 and server1 returns the answer to the client.
Following the above logic, if server2 makes a DNS request it asks server1 (!) which forwards the request to server2 (!!) which sends the answer back to server1 (!!!) which sends it back to server2 (!!!!).
In my test lab I have each DNS server (I have two) using it's own IP address as the Preferred DNS server. I'm inclined to remove the Alternate DNS server address from each (server1, server2) server's settings, and make Preferred DNS sever it's own address (server2's preferred DNS server will be .100.22, server1's will be .100.25).
Here's me running nslookup on server2:
C:\Users\administrator.yournamehere>nslookup
Default Server: UnKnown
Address: ::1
> www.google.com
Server: UnKnown
Address: ::1
Name: www.l.google.com
Addresses: 74.125.226.20
74.125.226.19
74.125.226.16
74.125.226.18
74.125.226.17
Aliases: www.google.com