Ok pull out the photo you want to manipulate. I chose one of Alyssa Milano here.
Step 2
Now duplicate the layer and press ctrl-U to colorize it. Click the colorize button and drag the saturation all the way up. Now adjust the hue slider until it's the color you want. I thought Alyssa would look good with purple hair.
Step 3
Now with the colorized layer selected, go to layer>add layer mask>hide all. The color will disappear for the moment and look like the original layer. We must now tell the mask which parts to reveal.
Step 4
To do that, simply select white as your color and get out your paintbrush . Choose a medium sized brush with a soft edge. You may have to zoom in on some parts but you'll see how easy the color glides on. You don't have to be perfect here, just get it the best you can, it will be easy to touch up later.
Step 5
Now all you have to do is set the blending mode to soft light. That's it! On lighter color hair I've found that setting the blending mode to hue works a little better, just try out a few and see what you like. If you ever want to adjust your layer mask, simply click on the mask itself (to the right of the layer picture in the layers palette) and use the color black to hide, and the color white to reveal.