Yep, good ol' ZLib Compression, you'll see it on a few games
http://www.zlib.net/
What you'd probably have to do is write a program that uses the zlib.library to extract all the files from data.000
I suspect there may be some out there to be honest, but I've not used zlib before so I'm not sure if there's special encryption or what not involved...
I think that the zlib compression is used for save game files and their screenshots.
I have written a small app that attempted to open the data file using the zlib library. It didn't work with the data file, I even tried to open the data file at different offsets (also without the stream header.)
I also ran some statistics on the data file, it seems that the data file is at least deliberately randomized (if not encrypted.) The file contains almost equal counts of all characters in the ascii set (0.02% maximum difference.) That does not happen even when compression is used (.bz2 compression has maximum difference around 0.15%, zip has 0.3% and an average mp3 file has 0.5% for comparable file sizes.)
I also figured out some information about the structure of the data file. The "random" content starts at byte 17. The first 16 bytes of the data file is the header. The first 4 bytes of the header hold the file size, the further 12 bytes seem static between different data files.
Hope this information helps someone.

Also, I want to say that this game is one of the best games that I've ever played.