Actually my Exchange 2003 reports itself as https://external.domain.com/exchweb/bin/auth/owalogon.asp?url=https://external.domain.com/exchange&reason=0
after i type in https://external.domain.com so your localhost query looks ok to me. What kind of problem are you having? That when you type http://localhost/exchange
it doesn't work but when you type http://localhost/exchweb/bin/auth/owalogon.asp?url=https://localhost/exchange&reason=0
it does work ? Also have you tried using https://localhost/exchange?
Take a look at your IIS it's where it's set up. You should be checking the ports, ip iis is working on and http/https settings.
If you're IIS is in bad shape and you want to reinstall it (as per your comment) take a look at this articles:
As per quote from the first article it's not really a walk in the park:
Apparently when you remove IIS you have also removed some additional configuration parameters that exchange has added to the IIS Metabase and you must follow the 6 steps below to relink the attributes when you install IIS again.
1. Back Up Data
2. Dismount the Mailbox and the Public Information Store
3. Stop Exchange Services and Remove IIS
4. Reinstall Internet Information Service and Reapply Service Packs
5. Reinstall Exchange Server
6. Restore the Original Exchange Information Store
So think hard before reinstalling IIS. I guess it's "simpler" to try to fix it.