Üblicherweise würde man sowas dann wohl über https-Verbindung machen, aber AFAIK ist es nicht ganz einfach, eine aufzubauen. Eine Alternative wäre, dass du die Zip-Funktion zum hinzufügen eines Passwortes zum Archiv benutzt, so dass du einfach hinterher auch in deinem Zipper das Passwort eingibst und gut ist. Evtl. geht das auch automatisch mit der ZIP-Erweiterung von PHP, jedoch habe ich mich mit der nie beschäftigt.
Noch eine (sehr komplizierte) Möglichkeit wäre, ein Skript zu bauen, dass die Datei ausgibt, wenn man sich eingeloggt hat (so wie beim Forum). Die Datei selbst liegt in einem Verzeichnis, auf das kein HTTP-Zugriff erlaubt ist, womit die Dateien dann wohl auch sicher vor externen Abrufen wären. Bei der Übertragung könnte ein böswilliger Hacker sie wahrscheinlich trotzdem lesen.
Wenn mir zum Schluss noch ne Frage gestattet ist: Wozu brauchst du das verdammt? Willst du hochgeheime Dateien auf deinen Webspace laden??