I think it’s important to clarify what we mean by “location-based contexts” since it seems the responses in this thread are mixed into two different forms (of which I have, or have used, both).
The first type of location-based context essentially predates iOS’ geofencing and reminders features, and goes back to the days of the iPhone 3GS when all we really had was a GPS and a “Nearby” feature. These contexts work even in many of the ‘contrived’ examples, since one great feature OF has always had for these types of location-based contexts is the ability to do a search rather than simply a set of coordinates. So, I can create a context for “Walmart” that looks for anything named “Walmart” and then bring up the “Nearby” view on-demand.
The downside to this type of location-based context is it can’t provide alerts. This is a limitation in the way that iOS’ geofencing features work… They need a specific location, and can’t work from a search (although, as an aside, it would be an interesting addition if OF could just search and auto-populate the nearest “x” number of matches into the Location-based Notification system, which certainly seems possible).
I frequently used this for things like ‘Home Depot’ and ‘LCBO’ (liquor store), since those would have things I might want to pick up at the nearest version of one of those stores, regardless of wherever I happen to be. At the same time, I don’t really want alerts for these anyway – I’d rather look at my Nearby context proactively for this sort of stuff than have my iPhone constantly reminding me that I’m somewhere near a place where I can buy something. I live in a big city, and that could get real annoying, real quick :)
Location-based alerts are a separate issue, and of course only work with a specific location. This is where things like ‘Walmart’ or ‘Home Depot’ may not work unless you always go to a specific one, in which case you probably know that you’re going there anyway.
I’ve moved my shopping lists out of OmniFocus in recent months anyway, preferring to now use AnyList as it has a few other nice features related specifically to shopping lists, such as recipe support and the ability to share lists with my partner, so if she’s at the store, she can see what we need and pick things up (or vice versa).
However, despite that, I still use a location-based context for the nearest grocery store for items that I need to remember to pick up the next time I walk by there. I routinely walk in the same general direction, and this is where location-based alerts can work to remind me that I need to pick up something specific. I only use that for specific, important items, however; more broad shopping location-based contexts were generally more annoying, as I don’t need to be reminded to stop into the grocery store each time I walk by it when dealing with a shopping list that’s mostly confined to “stuff I need on my next shopping trip.” So, separating my main lists into another app has generally worked really well.
However, I also have two other very specific contexts that I use location-based alerts with:
The purpose of these should be obvious by their names. For the same reason I don’t want my entire shopping list context to shop up every time I walk by the grocery store, I don’t need to know about all of my chores and errands every time I leave home or arrive at home. So, in addition to standard Home and Errands contexts (which do not have associated locations), I use the two above for things I specifically want to be notified of under those conditions. That way I’m actively reminded of things that need to be done when I’m arriving home (e.g. ‘take out garbage’) or leaving home (e.g. ‘go buy cat litter’). These are frequently repeating tasks with defer dates on them, so of course the notifications only come up when the tasks have once again become available. I had a similar repeating task for ‘buy milk’ at the local grocery store back when my daughter was young enough to be going through it at a rapidly accelerated pace.
I work from home, but if I had a traditional office setting, I’d probably also add ‘Leaving Work’ and ‘Arriving at Work’ to the mix.
Note that I don’t necessarily use either of these contexts statically. Some repeating tasks do stay there, while others get assigned in and out of them somewhat dynamically during my daily or weekly review cycle. For example, an item in my normal “Home” context might very well get temporarily moved to “Arriving Home” if I’m going out for the day and want to be notified of it as soon as I get back, and similarly an item in my Errands context can be dynamically added to “Leaving Home” if I know I’m going out later and will probably have an opportunity to take care of it, and want the reminder as soon as I leave.