Depending on the version of SS you are running, setting:
In your mysite/_config.php file should fix the problem. I think the default quality is about 70 (scale of 1-100). 100 would seem a bit unnessacery to me, and would go for 85 tops. But have a play and see if it fixes it.
I don't think that setting the GD quality will help all that much, because the image will be recompressed and lose quality, no matter how high the JPG quality setting is.
Since your client is a photographer, you might want to suggest that he prepares his images in the right dimensions and you output the original (uploaded) file in the template instead of a resized version.
I have clients like yours and I usually use a custom image subclass that only performs image recalculation if the requested dimensions are other than the source file.
You're right banal, setting the jpg quality makes no difference to the colour shift. It seems to be a GD related problem though as I have seen complaints from other open source application users such as Wordpress with the exact same issue.
There have been some requests on this forum for a change to ImageMagick rather than GD which might be justified if there's no way to get the same levels/saturation as the original.
I am using the gallery module and have chosen to set the large lightwindow popup image to show the original image to get around this. My client will just have to resize these in Photoshop. Unfortunately the preview images will still have a lack of saturation as they need to be resized.