Why does the mirror modifier+extrude or inset create doubles+bad faces ?

I started Blender at 2.69 and I’m currently using 2.70.
The problem I am encountering is this;
I create a simple cube at the origin. I apply a mirror modifier ( mirror X) and extrude one face along the x direction.
This simple action completely stuffs up the top face of the cube which won’t now render properly. After searching the forum I discovered that I can sort this by W > remove doubles. Its a nuisance though because whenever I extrude or inset faces I keep ending up with doubles and bad faces. Mostly I can get rid of these by removing doubles but sometimes I have to delete faces and re-create them before the mesh will render properly. I also can’t do any of these remedies unless I apply the mirror modifer. It makes my attempts at box modelling really frustrating.
My question is this - why does the mirror modifier create doubles and bad faces like this? it seems like really bad behaviour by this modifier - or am I the only one who has this problem? I dont think its a version problem because if I remember right I had the same issue in 2.69.

You’re supposed to put a loop cut in the middle, delete half of it and THEN do a mirror modifier. So for just a default cube you would CTRL R> left click> then right click to make the loop cut go in the middle>delete half of it> add a mirror modifier> turn on clipping to make the vertices connect at the middle. Hope this helps!

Thanks for the reply - I will try that - I had assumed it would cope with me mirroring from a primitive and then doing extrudes etc. I really appreciate the assist. If I get that working Ill mark this solved.

Update: yep that works great. Thanks very much for the informative response. Im still left wondering why it doesnt cope with straight mirroring but hey ho . Blender is great , ive used Maya and Max and lightwave andyears ago and only recently discovered Blender. its labrynthine but well worth the effort.