Assuming you're using a cmyk 4, 6, or 8 color printer, a good test to do is print solid color swatches of each color. Starting at 100% and varying down by 10% or so. Most printers I've used, either large presses from my work, or my home printer, just lay down too much ink for the materials you use to print on.
If your swatches at 80% look the same as the 100% swatches, you know then that the printer is laying down entirely too much ink for the coating on the material you're using. You can also save ink this way, by limiting all the dark areas in your photos to lower percentages.
That will at least give you a grasp of why photos turn out dark. And it can help you when you're adjusting the colors before print, to determine which colors are over saturating the coating