This is one of my favorite gifts! It is so easy. All you need to do is buy a hand soap bottle from the dollar store and remove the labels (front and back) with rubbing alcohol or goo-be-gone. Then you draw or print whatever you want. You could even have a child draw a picture for Grandma or a teacher. Take it to the copy store and get a transparency made. Then cut out the design and roll it up and stick it in your soap bottle making sure that the design is facing the front of the bottle. Use a skewer or something that will fit in the bottle and straighten out the transparency and scoot it to the front of the bottle (so that the dispenser can fit back in there).
If you want some help getting started here are a few free templates I have made
Got Soap? (one font). For either short, square soap bottles or tall skinny ones.
Got Soap? (with different fonts). For either short, square soap bottles or tall skinny ones.
Clean Hands Includes page for short/square bottles and page for tall bottles. You can personalize the "clean hands" template by adding a family name (like the picture above) or leave it off and have a more generic gift on hand.
ABC's For tall bottles only. You've gotta sing your ABC's until your hands are clean, right?
You could also try editing a cute photo at picnik.com. Create a pencil sketch and copy that onto a transparency.
If you want to add a border around your piece of art you can find some great ones here.
Hint: Using foam soaps, hand sanitizers, or colored ink unfortunately won't work.