A que a partir de ICS no puedes bloquear el hilo principal, también llamado UI Thread, todo lo que tenga que ver con sockets (una conexión HTTP usa sockets) tienes que ejecutarlo fuera del hilo principal. ¿Cómo hacerlo? Pues hay muchísimas formas, para tu caso lo más sencillo es usar un AsyncTask, pero también puedes meterlo todo en un Thread y cuando la imagen se haya descargado asignársela al ImageView con un RunOnUIThread o con un Handler.
Si no te has enterado de la mitad de lo que te he puesto deberías empezar por aquí:
http://developer.android.com/guide/c...d-threads.html