Given a DNS server list of X, Y, Z; Windows XP and Windows 2000 will keep using X until it fails. Then they will continue using Y until it fails. This is a pain if you have internal DNS and external DNS on different servers. So, failover from internal DNS to external DNS (which used to be graceful) is now very problematic as all of sudden the internal net "disappears". Running the following is a temporary fix: ipconfig /flushdns
The permanent fix is to not run XP or Win2000 (or get rid of external DNS failover, your choice ;).
Today, I set up a pair of GRE tunnels to one of our customer's home network. He has a /24 which we're now announcing BGP-wise, and his home network is now available by either his DSL connection or his cable connection (failover is good). Since the tunnels are GRE, he can now serve http, ssh, smtp, whatever from his home network to the Net and his DSL and cable ISPs are none the wiser. This seems to be a cheep way to maintain a small farm with real IPs at home. Pretty slick.