Pues entonces .. genera un .zip (u otro archivo comprimido) en el instante (dinámicamente) que desea tu usuario descargar esos archivos.
Para eso tendrás que leer el directorio completo (con dir() por ejemplo ..) para ir generando tu .zip (o lo que corresponda).
PHP dispone de funciones para leer (abrir) un .zip ..pero no directamente para comprimirlo .. (si dispone en gzip por ejemplo si mal no recuerdo).
Te puedes ayudar de esta (y similares) classes para generar tu .zip:
http://en.static.phpclasses.org/brow...ckage/945.html
(al parecer esta classe te permite indicar un direcctorio y lo hace solo todo el proceso de compresión ..)
Un saludo,