DNS on Active directory server and External DNS conflict

The way DNS with Active Directory should be configured is that your AD server with DNS should be the ONLY DNS record on your client machines. It should resolve all DNS queries. Remove any external DNS server entries from your DHCP or static IP configuration.

On your DNS server you should configure a Forwarder. A forwarder is a DNS server up the chain that can resolve requests that your server cannot, in this case your external ISP's DNS server.

If you have that all setup the internal DNS server should resolve internal requests for internal.foo.com and forward the lookup for foo.com to the external server.

Just a note but your AD box should also be using the local DNS server. If it is the only AD box you have then the only DNS record you should have should be the local address (127.0.0.1) if you have more than one AD box then you should make sure the local box is not the primary DNS server in the DNS server list.