If you use Linux 2.6 with driver mapper support you can go around 2Gb limit a little bit differently - split your uncompressed image into chunks (on a block boundary) which would compressed into under 2Gb sized images, use separate cloop devices for each of them and then use 'linear' target to put them all together. Try something like this (assuming 65536 block size and 16Gb uncompressed image):

split -b 4294967296 KNOPPIX-UNCOMPRESSED.iso KNOPPIX.iso.
create_compressed_fs KNOPPIX.iso.aa 65536 > KNOPPIX0-gz.iso
create_compressed_fs KNOPPIX.iso.ab 65536 > KNOPPIX1-gz.iso
create_compressed_fs KNOPPIX.iso.ac 65536 > KNOPPIX2-gz.iso
create_compressed_fs KNOPPIX.iso.ad 65536 > KNOPPIX3-gz.iso

modprobe cloop
losetup /dev/loop0 KNOPPIX0-gz.iso
losetup /dev/loop1 KNOPPIX1-gz.iso
losetup /dev/loop2 KNOPPIX2-gz.iso
losetup /dev/loop3.KNOPPIX3-gz.iso

dmsetup create knoppix <<EOF
0 8388608 linear /dev/loop0 0
8388608 8388608 linear /dev/loop1 0
16777216 8388608 linear /dev/loop2 0
25165824 8388608 linear /dev/loop3 0

mount -r -t iso9660 /dev/mapper/knoppix /KNOPPIX

So, here - you'll have your under 2Gb file sizes on iso9660 and a nice 16Gb uncompressed file system.
The only problems are that Linux 2.4 does not have device mapper and you need to adjust your mounting schema for /KNOPPIX during boot.

Hope it helps,
Cheers,
Igor

P.S. It may not work with the current create_compressed_fs due to a small bug - it adds an extra block if uncompressed image size is evenly divided by the block size. It doesn't show up when you have just one image, but with many it will show up in the middle of your file system.
If you have python installed you can use "my cloop python utilities" ftp://belyi.ac93.org/pub/cloop-pyutils.tar.gz as a workaround. Otherwise, you should apply a tiny patch provided with a debian bug report: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=296179