Multiplying AO over diffuse/albedo/base color is never "right", hence why it often gives that overly shadowed and dirty look. This is a pretty famous blog post by Zap Andersson on the subject that sums it up really well:
The tl:dr if you don't feel like reading all that is that AO is not color information at all, it is a sort of fake indirect shadow pass.
The "correct" way to attach baked AO in Blender Internal - assuming you are actually using it for pre-cached ambient occlusion - is to set the mode to multiply and change the influence to just the ambient channel, like so:
This way it will only shadow the ambient light (ex, the environment light in the world panel) and not the direct illumination from your real lights, which is already shadowed.
Of course, all this assumes you are actually using it as baked AO data. If you have AO enabled in the world settings, you don't need baked AO at all, because you are calculating global AO at render time. Also, ambient occlusion bakes are useful for a lot of texturing tricks besides actual AO, since they tend to highlight contact points and crevices where dirt is likely to collect. If you're using AO for dirt, you generally will end up blending it over the diffuse color (and possibly the spec/gloss/roughness/whatever-it-is-in-your-shader). This is because in that case, the AO is not shading data at all but is instead being used as color information. On a side note, if you are using AO maps for dirt, it helps to take the map into an image editor and use a brush to break up the even shading. Dirt doesn't collect in nice gradients the way AO shading does. You may even want to pre-layer it over your color map at this point to save having to load an extra texture.
While we're discussing AO, I should probably point out a pretty common misconception when using Cycles. Cycles does not NEED actual AO for anything, ever. Cycles does not have a true ambient light. The world light acts like one, but it's actually a physical light at infinity in all directions rather than a classic CG ambient light. Cycles calculates indirect light "for real" and those diffuse rays are already occluded, even on secondary bounces.
Cycles has AO functions because they're useful for all sorts of artistic things, but in most cases you should not use an actual AO map. If you want it for artistic texturing purposes it is almost always better to integrate it with your color map ahead of time rather than within the shader. But it's not a shading thing you have to do, your GI is already properly shaded without AO.