Getting objects to not stretch when moving a rig.

I am encountering several problems related to a single issue: The way meshes get deformed when moved with an armature is not realistic to how cloth works in reality. I will give an example: I am working on making cloth clothing for a body. The cloth is very tight fitting (socks, underwear, etc). I am weighting it by copying the weights from the body beneath. When I move my rig, the clothing does properly follow, staying above the surface of the body, and does not clip. However, it looks nothing like real clothing because it stretches too much.

In reality, cloth does not perfectly move with the body. It is slightly stretchy, but nowhere near as much as a deforming mesh is stretchy. When a mesh gets deformed, it tends to actually enlarge, and by a substantial amount. Real clothing, on the other hand, will slide over the body beneath as that body moves, rather than stretching infinitely. Consider a shirt sleeve: if you raise your arm above your head, the cloth will get pulled back down your arm. The end of the sleeve will now be in a new position. But in Blender, a model doing the same motion would keep the end of the sleeve in the same place, and instead the mesh of the sleeve would stretch as much as needed to accommodate the movement (and also stretch its UVs, borking your textures.)

I can change the weight value of the clothing so that they do not move as much, but then I get clipping problems. I am also facing problems with my UVs getting stretched, and then the clothing texture gets screwed up. There does not seem to be a solution within the actual weight painting, as all that does is control how much or how little the mesh deforms. The problem is the nature of the deformation at all.

I imagine this must be a fairly common issue for any character making more than very slight movements. So how do you deal with it?