When addressing difficult application compatibility issues, there are some things you just can't fix. Some applications will never work on Windows Vista, shims or no shims.
For example, I was debugging one application that happened to be written in Visual Basic 4.0 16-bit. (Ah, the days when you would pick the bitness in Visual Basic. I had almost forgotten about that!) I was watching it error out with Error 70 - Access Denied and trying to sort out what the problem was. A little help from Process Monitor revealed that there were no file or registry keys that were the cause of the problem. I was next thinking it might be related to COM, when a colleague (whose name rhymes with Orange) suggested looking for windows hooks. Sure enough, a bp on user32!setwindowshookexa turned up a hit, I investigated the arguments, and it was setting up a hook of type WH_JOURNALPLAYBACK.