mira, por lo que veo has llamado mal al archivo, si es nombredearchivo.zip.pl el servidor va a pensar que es un script y va a tratar de executarlo, pero si adentro tiene un zip te tirará un error...pienso que eso puede ser solucionado llamando al arhivo silamente.zip pero ahí tienes que ver bien los permisos para que no sea accesible por todos los internautas que pongan la url del archivo .zip
Lo que puedes hacer es que la verdadera url del archivo esté en una base de datos, o en una variable del script, entonces haes que el usuario en ves ver la url del archivo ve la url de una función específica como ser:
www.dominio.com/script.pl?funcion=si
y esa funcion llama al verdadero url si solo si es un usuario registrado
MonoSwim