Personally, I don't let users name thier own images when they upload them. I track the images they upload in a db file that stores
image info like:
<b>image_name</b>
<b>image_description</b>
<b>image_file</b>
where <i>image_file</i> is the actual name of the file on disk. This file name is generated uniquely for each uploaded image. Even if they replace <b>image_name = "car"</b>, the new image will have a unique, different name in the <b>image_file<b/> column.
This method completely avoids the image caching problems you face, prevents different users from accidently over writing each others (or their own) image files, and prevents users from trying to cause mischeif by naming an uploaded file the same name as some other image on your site and replacing it.
-- HTH
-- Rich