If you have experience of sending files for print in the past and receiving prints that are "muddy" and don't match your expectations, the culprit here is "colour management", not the file format. The bits and bytes you upload to the internet are going to be the same ones that arrive at the print shop; the problem is whether they are "interpreted" correctly.
Colour management can be a bit of a can of worms, but the two key points are:
Make sure you are using a calibrated monitor. You need a hardware calibration device for this, such as those from Datacolor or X-Rite.
Use colour profiles throughout your workflow. This means your editing software must respect any colour profile embedded in your digital camera captures (or film scans if that's the case), and your output files should also be correctly colour-managed with profile information embedded.
On top of this, you need to be sure of course that the print shop also uses a properly colour-managed workflow and recognises/respects the colour profile in your images. (The reality is that they may not, and they may be expecting images only in the sRGB colour space for example - in which case, for best results, that's what you should provide them.)
In an ideal world, the print shop would provide you with the profile they use for the printer/media combination so that you could soft-proof prints before submitting an expensive job (choosing your preferred rendering intent and black point compensation setting), but for some reason this doesn't seem to be widely practiced.
In short, proper colour management ensures that there are no surprises and printed output matches what you saw on your monitor.