When I was doing distraction training I didn't allow Earnest (my Lab/DaneX)to socialize on-lead, and I took him to Petsmart to practice. I still don't allow him to "say hello" on the leash, my feeling being he's supposed to be paying attention to me on lead, not looking for buddies. But I didn't block the aisles or the doors, either, and I was polite about saying "I'm sorry, he's in training, he's not allowed to say hello".
Last week we took both boys to Petsmart, Earnest has a few months left on his Banfield contract, and he needed a bordatella shot. We always take them on their 18" traffic leads, with their prong collars. I use a flexi everywhere else, but a long lead is not appropriate IMO, in a store.
So my son Levi (14) and Phyfe, my St./OEM X went looking around the store. Levi was standing near the end of an aisle, with some people gathered around talking about and petting Phyfe. This guy with a Border Collie approached, stopped about 12 feet away, and let the BC run out the flexi lead. The BC started growling at Phyfe and Levi. Phyfe is in no way dog aggressive, but he's VERY protective of Levi, that's his job. So he let out a HUGE roar and wrinkled up his face to show that BC how much bigger his teeth were. The passersby took off, I don't blame them, Phyfe with his face all bunched up is really scary. Levi kept his head and did just the right thing, he said "Phyfe, let's go" spun Phyfe around and walked off in the opposite direction. The BC owner hollered after him "Just 'cause he's big doesn't mean he's tough, my dog could beat yours any day" pretty bad when the kid is more mature than a grown man. A worker did check to make sure Levi was ok, and came to the vet's office to apologize. They asked the BC owner to leave, he got huffy and tried to blame Phyfe, but the people who had been looking on saw the whole thing, and defended my boys. We've had stuff like that happen before, usually it's Phyfe that gets the bad rap, just because he's so big, and his roar is so loud and scary.