Semplicemente non c'è modo di evitarlo perchè Internet funziona così. Quando il browser contatta il sito non contatta il nome di dominio ma l'IP.
L'unico modo per aggirare il problema è usare l'http 1.1 e i virtualhost. In pratica si mette un virtualhost dummy di default oltre al virtualhost corrispondente al nome di dominio.
In questo modo quando si entra tramite l'IP si viene mandato al sito dummy ( può essere una banale index.html vuoto ), mentre si potrà accedere al sito vero e proprio solo tramite il nome di dominio.
Questo però non vuol dire che il browser cambierà metodo di accesso, semplicemente i browser che implementano l'http 1.1 aggiungo l'header "Host: nomedominio.ext" alle richieste http.