Do have the monitor calibrated to the output of the printer? Monitors are calibrated to factory standards and not always matching what the camera or printer are set to. The cheap way to do it is to take a printed photo, open up the same photo on the computer, and make adjustments until they are as close as possible.
I use Canon cameras, D30, D60 and G9 and when reviewing my pictures on any of the camera screens, all looks fine. However when I transfer flash shots to my computer, (an IBM Desktop ThinkCenter,with a 3.1GB clock) using USB 2 connectors to a Medio Gear Memory Card adapter, or any camera directly, the pictures always appear and store very dark. This happens no matter program what I use; Microsoft viewer, Photoshop CS2, Picasa 2, CANON Zoom Browser EX or any other program.
If I plug the Camera or Memory Card directly into an HP independent printer,(A626) the pictures view and print beautifully.
In addition to my computer, I use Microsoft XP Pro.