Polaroid Dust and Scratch removal - a free utility from Polaroid that's supposed to make it easy to remove dust and scratches. In addition to normal use, there's also a plugin mode for Photoshop included. Worth taking a look at (I haven't tried it yet). By the way, the installer is pretty dumb - it searches all mounted volumes for plugin folders, but of course can't find "additional modules". Rarely such a dumb idea, especially with my 120 GB Firewire disc ...
First test results with the Polaroid filter: not bad, it determines its own masks based on damage markings and removes elements in that area by blending with the surroundings. So exactly what you need. Ok, if I open an image of several people and the filter then wants to remove someone's glasses as scratches, that's a bit overzealous, but the idea itself isn't bad in principle. I think I'll give that a try soon when I scan dusty negatives again.
Sometimes Python messes with me. Today for example: Initializers of optional function arguments are unfortunately evaluated at the time of compilation! So if you define a now=time.localtime(time.time()) as an optional parameter, you shouldn't be surprised if now is only the time of the last module compile, and not really today. I'm still not sure if I see that as a bug or a feature.