When I was in Boy Scouts they said if a drowning person was pushing you under, you should dive to make them let go. Anyone with experience know if that works?
Yes, see my comment elsewhere on this page. I've done it more than once, and it always worked like a charm. Desperate people will try to get on top of you if you are floating; they'll drop you if you are dragging them under. I've always been larger than the people panicking, so I can't be sure a small person could drag a larger person under, but if your head is already under, trying to go deeper is your only viable option. If you try to come up, you'll have to lift them, and they'll stay on top of you.
More specifically, lifeguards are taught to turn their heads (so the chin is over the shoulder) and push up on the victim. This makes the victim feel safer by getting them further out of the water, and puts some distance between you and the victim.