Is the compact flash card corrupted or do you just want an exact copy of it?
The easiest way to make a copy of it to another cf card or partition is to use dd in linux. Beware, if you are copying to a partition, dd will overwrite everything.
The equivalent for windows/dos is to use diskcopy(?) - either that of discopy, but not running windows. Windows discopy needs both discs/cf cards to be the same size.
You can copy it to a file using dd and then use mtools to attempt to read the filesystem. Or even resort to looking at the raw blocks. However you should use the dd option: conv=noerror,sync to make sure that every block is either copied or if not possible, replaced with zeros in the output. Otherwise your output file will not match up with the input wrt block numbers and everything will go pear shaped after the first error block.