I strongly suggest that you're tackling this the wrong way. If you have a single file using 50% of your diskspace, you need to get more diskspace. Do whatever it takes to get more quota. Otherwise you're going to have to resort to "clever hacks" which could get you into trouble, unless you make them utterly robust.
For instance, if User A requests the file download, and User B requests it a couple of seconds later - will that create two zips, using double the space? Or will B "inherit" A's zip? if that's the case, what happens if A deletes if before B downloads it? Or if A aborts/crashes and only creates a partial file?...
You very quickly build up a fairly messy set of conditions to deal with. Without any great reason for it. Once anyone requests the file, your space is used anyway.
Also, how many times will you be able to email a 250MB file before your host cracks down on your bandwidth usage?
Get the extra quota. You need it.
If you really can't get the quota, you could try a different approach. Do you need to send down the images at all? Could you just send down a link to the images instead, and let your adminnners download the individual images they require. Do they really want a 250MB attachment on their email?