Here's a couple tricks to keep on hand.
As you probably already know, any circle or cylinder is made up of multiple faces (i.e. not a true round or circle).
As such, faces are angled on different angles. That said, it is important that the face that you sample the projected image from is parallel with the face you want to texture. Furthermore, that sample plain must also be located directly 90 degrees perpendicular to (or straight out from) the face which is to be textured with the projected image (or as close as possible).
So there are many times when I have to place my image (the one which is to be projected) onto a flat plain then I will make copies of that textured plain in an array or whatever so that they are positioned as described above.
Then you sample the corresponding adjacent "
projected texture sampling plain" (for lack of a better name/description) and texture the surface(s) that are closest/adjacent.
Do this for each face or geometric tile (Hidden Geometry ON) that is needed.
AND
Whenever I am projecting an image onto a Spherical surface (or even cylindrical, depending on the number of faces), I might also turn Hidden Geometry ON so that I can select and texture only those geometric tiles (for a lack of a better description).
That is how I textured the following water tower tanks.
Water Tower Example 1Water Tower Example 2Water Tower Example 3Most of the tank is textured with the terrain image or a tiled texture that I have created from a photo. However the Name Text and/or Logo Images are only projected on a few faces or geometric tiles which I could see and select with Hidden Geometry turned ON.
I hope this is the kind of answer you were looking for !!?