Do a search on the c2 forum for Silhouette, there are examples.
You can either set a layer to "force own texture" and then put a duplicate of the object tree on it to act as a mask, then on the same layer a duplicate of the character with blend mode "source atop" or "destination out", can't remember which, then when it overlaps the mask it should work as you want. The mask colour will determin the colour of the silhoutte of the character duplicate which will be invisible until it overlaps the mask.
The other option i used for a game was simply to have a duplicate of the character set to something like 40% opacity and always have it on top of the layer so when it overlaps something you can still see the image rather than a dark shade.