in reply to Archive::Zip truncating data

Are you sure your cgi script on the production machine is terminating normally? The first thing that I think of when I see files truncated to chunk multiples is that the files were never closed properly and the buffers weren't written out. (I have a little experience with Archive::Zip on a Linux machine, but have never come across this problem.)