Buenas,
desde luego con html no podrás.
Si dices que podrías usar php es probable que exista la forma de hacerlo al igual que se puede (parece ser) con asp.
Todo lo más que se me ha ocurrido para hacerlo del lado cliente ha sido con el método execCommand(saveas) pero yá sabes lo que pasa, que sólo te sirve para explorer.
De todas formas si te interesa te dejo la linea
<a href="#" onClick="ventana=window.open('archivo.loquesea','v entana','location=no,width=10,height=10,top=0,left =0');ventana.blur();ventana.moveTo(-200,-200);ventana.document.execCommand('saveAs');ventan a.close();return false">Descargar archivo</a>
De todas formas el listo que mire el código fuente verá dónde está el archivo.
Supongo que lo más seguro será usar lenguaje servidor.
Si te parece muevo tu pregunta al foro de php
saludos
p.d. nadie sabe si existe el equivalente a execCommand para netscafé??