I've noticed I often do not spot an active program for a while, especially when I'm running quite a few applications at the same time. To make this distinction more clear than the small dot, Im trying to find a way to dim the unactive Dock icons, or make them black/white. So far I havn't been able to come up with a solution, though.
Now I've noticed that Adium changes its Dock icon when it's active or inactive. Perhaps this would be a nice stepping stone - how does Adium handle this?
EDIT: I went through the Adium sources, but they call
[[NSApplication sharedApplication] setApplicationIconImage:image]; to change the icon. Their default is the sleeping bird and they update it at runtime from their application. Seems an impossible solution for closed-source applications, unfortunately.