We were trying some camera projection as in simulating a real projector and found a nifty technique.

Camera mapping a texture and also adding a texture to a light both have their disadvantages.
Camera mapping technique means all of your objects need to be grouped and you get tearing . Using a texture on a light wont respect perspective when you move the light back in z.

If you nest a camera in a light, add a texture to that light and set the mapping to camera mapping of the nested camera you get a result as you would with a real projector.
The advantage of not only being optically correct is that you can project onto an object with existing textures.

note: The texture needs to be in the transparency channel in order to work.

DEMO C4D project file.