Had a friend call me up, he has the Godaddy hosting and was having the same issue. I looked at the dnn code and there is a function in the Globals.Common library that gets the domain name. If you look on the control panel under hosting, that will show you what domain name it thinks the site is representing. Anyway, there are two ways it determines this domain:
1) Using the request and parsing the url to get the domain name
2) Determining if a host header is present, if so use that.
For the Godaddy deal, I think it is falling upon #2. I will bet dollars to doughnuts that in your settings the domain name you said this site is representing is the live domain name. I think through some redirection trickery, Godaddy is stuffing in the host header in the request so your site will work without having the real domain name pointing at it. Reason being if you look at your portal alias list, it shows the live domain name there too (which does not point to the site). This was not always the case with GD hosting. It would provision the site with the previewdns.com DNS name and that also went into the portal alias so the site would actually work. Or at least that is what I'm thinking is going on. Since it is subterfuge on the part of the hosting provider there may be little you can do other than live with it and know admin type redirects will fail everytime. Hopefully this makes things more understandable as to what is going on. The other option would be to create your own version of the Globals.Common library and comment out the part where it pulls the domain from the host header and force it to use the request URI.
If you choose to do that here are the lines of code you want to comment out in Library\Common\Globals.vb (about line 643)
Make this:
URI = Request.Url.ToString()
Dim hostHeader As String = Config.GetSetting("HostHeader")
If Not hostHeader Is Nothing Then
If hostHeader.Length > 0 Then
URI = URI.ToLower.Replace(hostHeader.ToLower, "")
End If
End If
Look like this:
URI = Request.Url.ToString()
'Dim hostHeader As String = Config.GetSetting("HostHeader")
'If Not hostHeader Is Nothing Then
'If hostHeader.Length > 0 Then
'URI = URI.ToLower.Replace(hostHeader.ToLower, "")
'End If
'End If