Hola,
El problema puede estar en que el archivo es descargado y situado en el "caché" (me pierdo aquí un poco, pero, espero que la idea se pueda entrever) y así, al descargarlo de nuevo, lo que obtienes es el archivo del "caché" y no el que esté en el servidor y que te interesa descargar. ¿Solución? Dos, que yo sepa. Borrar el "caché" de Internet Explorer luego de descargar el archivo, o, más adecuado, parece, descargar el archivo "forzando" a que este no se sitúe en el "caché".
Para lo primero encontrarás información en
Google, por ejemplo, a poco que realizes alguna que otra búsqueda, es decir, es posible desde Delphi, programáticamente, borrar el "caché" de Internet Explorer. Empero, como no tengo muy claro de qué estoy tratando, me iría más por la segunda opción. Para esto puedes hacer uso de la librería "WinInet" (unidad "WinInet.pas", en Delphi) la cual te permite descargar archivos de Internet, forzando a que dichos archivos no se sitúen en el "caché" de marras.
Zarko Gajic te proporciona un
ejemplo de uso de la librería "WinInet" para descargar archivos de Internet. Conviene después que eches un vistazo a la
ayuda de la función "InternetOpenUrl", usada en el ejemplo de Zarko, pero, a la cual se le pueden añadir los parámetros oportunos ("flags") para conseguir lo que vengo diciendo: que el archivo se descarge siempre desde el Servidor, incluso si existe una copia del mismo en el "caché".
Creo que con esta información puedes tirar adelante; si tienes alguna duda o algún comentario, ya sabes dónde estamos.