Puedes ver lo que dice MS respecto al problema que mecionas sobre el caché:
El "problema" que mencionas
http://support.microsoft.com/kb/q222064/ http://support.microsoft.com/kb/234067/ES/
Puedes probar con esto:
Response.Cache.SetCacheability(HttpCacheability.No Cache)
Response.Cache.SetAllowResponseInBrowserHistory(fa lse)
Volviendo a tu problema inicial, me parece que también sería una opción que en la propiedad ImageUrl del ImageButton no pongas directamente la dirección de tu imagen, sino una página adicional que se encargue de gestionar tus imágenes en base al URL que tienes en tu base de datos, un ejemplo sería este:
ImageButton1.ImageUrl = "/imagenes.aspx?id=foo.gif"
Saludos