I do use off center shots - but I have to combine parts of those with a lot parts of other shots of the same person from different angles.
Next its copy/paste/fit from a bunch of shots until you have what I like to call a Frankenface as a template to create a new face from. If necessary, I mirror some but I try to avoid that when possible. Too much symmetry can have some undesireable results.
Then its color matching/light balancing every piece until they all match, and are a similar skin tone to the race I want to make the face for.
Once I have a seamless Frankenface, I posterize to 32 levels - check for alignment with an existing face texture and I then use that as my source to paint from.
Once I get the new face part coutours done and the colors blocked in, I delete the Frankenface and finish the new face on the existing texture. The backgrounds of the existing textures are already fantastic, so I always keep those. I just work my face over the existing one.
Its not easy working with off center pics, though. Sometimes odd angles can give you odd looking features and you'll find yourself adding pixels here and there to get fairly normal shaped features.
You have to have a good handle on your graphics program and make best use of the tools you have. Thats 3/4 of the battle right there. The better you know your graphics program and the tools available in that program, the better results you'll get - even with less than desireable photo sources.
I always hope that when I do a face that I can have a good, well lit, high res frontal shot to work with. Quicker that way.