Some ideas I am working on (and considered implementing) to help with that "creep factor"/customer discrimination..
1) Pre filter using their IP so that people not in range would not see the geolocation request.
2) Instead of automatically opting in, I plan to allow the website owners to chose if they'd like a button widget they can customize. This way they can let users click a "75% Off Button" or something along those lines, THEN confirm their geo-location.
I love your WalMart example, thats exactly the sort of thing that could work.