How do you stop this from happening?
The method posted by Eugene is obsolete as of version 2.79 of Blender. Transferring the weights, as far as I tried, read on forum and even on the comments of this really video, seems to have no effects on the weight of the cloths.
You can have the same result as on the video using the following method, though.
Use the data transfer modifier.
1- Select the cloth
2- Shift select the rig
3- Ctrl + P to Set parent with empty groups
4- Select the cloth Alone
5- Add the Data Transfer modifier (anywhere in the stack) then within the modifier:
6- Source object - Select your Rigged mesh (body)
7- Check Vertex Data (first in the list below Source object)
8- Select (highlight) Vertex Group(s)
9- Click Apply
10- Forget about most of your nightmares and forget about destructive solutions.
You may have to do some additional Weight paintings or Shape keys with drivers for the clothes to react the way you want with some flexion but at least, the clothes won't get through your base character as you move your rig with this method.