I used PartitionMagic 8 to resize an NTFS partition, and it hosed tons of photos from our last trip to India. So I hacked together diskid32 and the Small JPEG Decoder Library and created a program to scan my hard disks for the missing JPEG files. It didn't find much more than GetDataBack did, and it was *way* slower. 30+ hours vs. 3 hours. So I shelled out the bucks for both GetDataBack NTFS and GetDataBack FAT. Both excellent programs.
The code can be found here.