Hola,
La forma seria la que dices de ponerlos fuera de los directorios de publicacion. El acceso seria mediante un script protegido y devolviese el contenido del fichero.
La proteccion de ese script la podrias hacer con el autentificador d eCluster, o con cualquier otro (incluso autentificacion HTTP).
Una vez comprobado que el usuario tiene permiso para descargar el fichero, simplemente generas las cabeceras adecuadas y mandas al navegador el contenido del PDF. Sobre las descargas hay varios mensajes, alguno creo que en las FAQs. Tambien si miras en el manual en header() (
www.php.net/header) ponen ejemplos de las cabeceras.
Y mucho me temo que no hay forma de evitar que se guarde en temporales. O al menos no la conozco.
Saludos.