I've done data recovery from portable/removable media before, but this is the first time I've done so under Linux.
I used "photorec", which is bundled with "TestDisk", the latter being the main part of the package, however I didn't actually get any images back until I used photorec itself.
It's a simple text based tool which is quite intuitive to use, and available from the repositories, so installing it was a snap. (Search for "TestDisk"). My discovery started with the results of a good old google (surprise surprise), here at debian-administration.org.
Anyway, I recovered the images from the card, and have re-formatted it, so hopefully it'll be some time before it causes any more problems. Mind you, at 128 MB, that particular card is a bit of a dinosaur, and on the small side.
I'm not sure what actually caused the data corruption. A couple of times I've had the camera lock up when shooting video when the card has been almost full. It's an Olympus C760 using XD, and been a pretty good all round camera.