I think there's many alternatives to a shock collar. You can buy illusion collars of Cesar Millan's website. I have one of those for when I take Mika for a walk, and it seems to work great.
It's kind of 2 collars in one. One part sits at the neck where a normal collar would, and one sits a bit higher. Where normal collars sit, it's at a strong, conditioned part of their neck, so when you tug it, the dog is already conditioned to the pulling. However, the illusion collar sits a bit higher, so that when you give it a yank, it's easy to snap the dog out of the wrong state of mind.