Use a sniffer on your external computer, WireShark or equivalent freeware will do.
Observe what the value of the Host: option is when you access the home page. Example: Host: www.google.com\r\n
Then go to the password protected page. You should see an '401 unauthorized' response when you try to access the page protected by .htpasswd. Look at all the options in there. I suspect your Apache server is reacting to anything that comes in, you should lock it down to only listen to your.domain.some.thing, meaning that you impose the use of that string in Host:
When the athentication goes back to your server observe theHost: xxxxxx because that is the one your browser is going to use to authenticate, and it is also the one appearing in the URL bar.
hope this helps