Almost certainly a color space issue. Are you working in Adobe RGB? (If you have your Canon camera set to use Adobe RGB, your file naming will be _MG_0000, instead of IMG_0000.) If so, unless you have a specific reason for doing so (e.g. you commonly submit files for offset printing or the print lab you use recommends Adobe RGB), I suggest using sRGB. If you convert your images to sRGB, then upload, should find that they match.
Browser matters, too. Previously color space and ICC profile didn't matter much for web display since most browsers ignored the tags and just used sRGB as the color space. However, some current browsers (e.g. Apple's Safari 5) respect the embedded ICC profile and adjust the color to match your display, the idea being to represent the 'true' color (which really only works if you're also using a calibrated monitor). Click HERE
for an example of the effect of embedding a profile (if the image on the left changes as you mouse-over it, you have learned that your browser ignores the profile; clicking changes the gamma to match Apple's default 1.8 vs. Windows default 2.2).