Sería más rápido que veas algún script de descargas ya hecho .. Para que tomes nota de la forma de trabajar con las cabeceras HTTP que has de usar (las que más o menos te han mencionado).
Ejemplos tienes en:
http://www.hotscripts.com/PHP/Script...ems/index.html
El tema se trata de validar a tu usuario (como sea: contrastando tus datos en una BD .. en un archivo de texto plano .. variables simples .. ) y de que "si es correcto el par: usaurio/password" que envie las cabeceras HTTP que necesitas para que le indiquen al navegador que lo que se va a enviar es para que lo descargue (idenpendiente de su formato .txt o lo que sea).
(si mal no recuerdo .. en las FAQ's de este foro también tienes un ejemplo de descargas vía PHP para que le añadas tu rutina de validación del usuario ... )
Un saludo,