You may want to look at ICC profiles. Every image is expressed in a given colorspace, and in a perfect world every image has an embedded ICC profile that describes its colorspace.
Simply speaking: when you say a color in RGB (for screens, or CMYK for printers), you give its values on Red, Green, Blue axes (Resp. Cyan, Magenta, Yellow and Black). The problem is that every screen and every printer interprets these values in their own way. Therefore, in the absence of color management, or soft-proofing, you end up to see the same image with different colors on different screens.
If your digital image was created by a camera, the embedded profile in the image gives the exact transformation that converts its RGB encoding into an encoding in a standard colorspace: CIELAB. Everyone agrees on the meaning of a CIELAB encoding because it's based on perceptive measurements, not on arbitrary technical characteristics of some arbitrary hardware.
Your monitor, in turn, has its own ICC profile. If you're on Mac, your monitor's profile is presented by an application called ColorSync. If you're on Windows, it should have been installed in a specific directory when you first plugged in your monitor. If you have strong requirements on color accuracy, you should update your screen's profile regularly using a special device that takes a picture of your screen and measures how it renders colors. If you're not so hardcore on colors, you might rely on the factory profile that came with the monitor.
When you have both source and destination profiles, your color management system should be able to convert image colors in order to end up with the same colors on both ends. The ICC profile embedded in your image is used to convert from camera space to CIELAB, and the ICC profile of your monitor converts from CIELAB to monitor space.
Let's take another example. Say you've produced some artwork on Photoshop and you want to print it. The source profile is the ICC profile of your monitor. When you save your image in Photoshop, you have the option to include it in the metadata or not. Your destination profile is the printer's profile. A professional printer has its own color management system so that when you give it an image with embedded source profile, it will print it with the correct colors.
As you can see, it's not an easy task that you've been asked to do. There are open source color management engines out there that you can use. But you still need to develop the application around it. That's the bad news.
The good news is that at netsas.com we've done it already and we've got just what you need. It's called Shortcut. Its "your online personal space" where you organize and share images with your customers. It's all online so you don't need to install anything, neither do your clients. You just upload and send, and your customer receives a notification in their mailbox. They follow the link and find your files, and we make sure everyone sees the same colors. Wen you'll come back to Shortcut, you'll find their comments and you'll be able to upload new versions.
It's at
netsas.com and you should be able to register for a free trial.