Quando o site é acessado por IP, o HTTP_HOST será um endereço IP (ou talvez apenas em branco - testei isso no meu PC e era um endereço IP). Em caso afirmativo, você pode usar a regra de regravação de URL simples para fazer um redirecionamento 301 para um nome de domínio adequado.
Aqui está um exemplo de tal web.config (quando HTTP_HOST é um IP). Você precisa do módulo URL Rewrite para ser instalado (o v1 já vem junto com o IIS 7.5, mas você pode querer atualizar para o v2). Funciona bem no Windows 7:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="IP Hit" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="192.168.0.3" />
</conditions>
<action type="Redirect" url="http://www.example.com/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
P.S. Você precisaria mudar o meu endereço IP local para o que você tem no servidor (73.34.12 ...)