~ lo capisce solo asp.net percio se nella master page hai dei semplici controlli html senza runat=server il carattere ~ per lui è un carattere normale.
(e quindi in esecuzione tenterebbe di trovare senza successo una roba tipo http://localhost:xxx/~/img/logo.png)

Nella masterpage se usi il tag img normale (senza runat server visto che non ti serve, come è giusto che sia) tutti i collegamenti alle immagini devono iniziare con / (es. src="/img/logo1.png") e tutto funziona.