Debes usar cabeceras HTTP para indicar a tu cliente (navegador) que los datos que vas a enviar son para descargar.
Más info y ejemplos:
www.php.net/header
Así que tendras un script tipo:
descargar.php?archivo=tal.pfd
que hará esos header() y demás junto con un readfile() tras el envio de las cabeceras HTTP adecuadas para entregar el archivo al "buffer" de salida.
Un saludo,