Hola,
Con readfile() (
www.php.net/readfile) puedes hacer que el script devuelva el contenido del fichero que esta en un directorio fuera de la raiz del sitio (siempre que sea accesible para PHP por el sistema de ficheros).
De todas formas, busca en el foro, ha habido varios temas sobre como crear sistemas de descargas como el que describes.
Suerte.