newphpcoder,
I can not say what is the proper methodology regarding DNS for internal vs external, however:
If you create an entry in your DNS server for a public domain, it will still work -- internally only.
The problem lies in the fact that you must keep all external DNS records updated along with internal ones.. if the DNS admin makes changes to the external DNS, you must mirror that.
Also - if these DNS Servers are used for external, use your local IP structure is publicly available, this is something that I try to avoid in general.
You will want to have internal DNS server(s) available from within the company only, with DNS Forwarders set to your own external DNS Servers. (DNS Forwarders Setup Here)
The same problem lies if you are using the same domain (say bignerd.com) which works externally but you want "int.bignerd.com" for internal use.
One method I've used in the past is to assign a .local extension, for instance bignerd.local.
Adjust the DNS Suffix from within your DHCP Servers (assuming this is your set) and use your internal DNS to search for bignerd.local (or yourdomain.local).
Thus your users can just type host, for instance "http://intranet" -- which will assume http://intranet.yourdomain.local due to the suffix as defined in DHCP.
Although I am sure there is a better way to do it, at the moment I only have access to Linux servers which just won't help me to test any further ideas.
Best of luck