There were lots of third party compression utilities before DOS 6.
I used to use one called diet. It would intercept calls to read from files, and check to see if it had compressed them. If it had, it would unpack them to another location (I used a resizable ramdisk) and redirect the read to the uncompressed copy.
When the file was closed, it would delete the decompressed copy.
It would only work on read only files, but it worked pretty well. In the days before disk caching, uncompressing to the ramdisk actually made things faster despite the overhead of the decompression.