Have you checked to make sure DHCP isn't setting your hostname? Do 'ps aux | grep dhclient' to see if a DHCP client is running. If it is, you can doublecheck if the DHCP server is assigning the hostname by looking at the DHCP lease in /var/lib/dhcp/. Find the lease file there of your interface (probably dhclient.eth0.leases if you're using eth0). cat the file, and you might find that the host-name and domain-name dhcp options are set.
For example, my hostname at the prompt is 'dhcpuser-82', with the full domain name being "dhcpuser82.dh.example.com". My /var/lib/dhcp/dhclient.eth0.leases file looks like this:
...blah blah
option host-name "dhcpuser-82";
option domain-name "dh.example.com";
... more blah blah
If so, this is the origin of your frustrations. Either stop using dhcp and go static (which, if you do, don't forget to issue a kill to the running dhclient since a network restart won't automatically kill it, and you'll find things back the way they were the following day), or check google for ways to bypass the host-name and domain-name DHCP options. BTW, don't try to edit the leases file to correct the problem. It'll just get overwritten the next time dhcp updates the lease, or worse it wont be able to renew your lease and your host will lose it's ip.