when your modem is on your local settings get changed. Typically your nameserv3ers (resolv.conf) will get over written as well as otehr things like search domains.
you're getting localhost because you've not set a domain in the first place. if you set one using "hostname" it's likely that that name will not be changed to the cryptic ISP supplied one. i'm pretty sure all that that actaully does is set the HOSTNAME= parameter in /etc/sysconfig/network so make sure that's set to something