The post above that recommends two DNS zones (split horizon) is the correct solution.

Since our external addresses don't change too often, we use FreeBSD servers with BIND for external DNS and edit the zone files by hand. All of our internal DNS servers are authoritative for our xxx.net internet and AD domain and point to the external servers as forwarders. Since the internal DNS servers are authoritative, they never forward to the external DNS servers for xxx.net lookups. (If we don't know about it, it doesn't exist!) The external DNS servers are also authoritative for xxx.net and only know about the external addresses that are resolved for the rest of the world.

On the misbehaving machine:

1. Is WINS manually configured to look to your AD masters?

2. If you are using DHCP, is the DHCP server configured to hand out WINS addresses? (I've experienced some pretty strange behavior when I run WINS and DNS together.)

3. If you open a command prompt and run 'ipconfig /flushdns' and then try and ping again, does it return the correct address?

Since you mentioned that the address is correct when you perform an nslookup, this would indicate that it is not a DNS error. Check the zone files on both DNS servers and look for the incorrect (external IP) entry. If it's not in either location, then you know it's not a DNS error and must be coming from the Windows Naming Service.