tags, contexts, and multidimensional space
Those of you familiar with GTD will know that one important concept in the system is that of contexts. (For those yet unpolluted, GTD is a task management system, and the context of a task is the situation in which one can do it - so tasks in the context "home" are ones which can only be done at home. This saves having to sort through lots of tasks that you cannot do because you are on a train or halfway up Everest. Contexts can be almost anything; they may involve the tools one has at hand or the mood one is in.)
"Contexts" is a very sensible idea, and something that is worth keeping even if one isn't actually practicing doctrinaire GTD. Traditionally there are just single contexts, home, office, phone, but much GTD related software (for instance Omnifocus) allows contexts to be nested, so that "errand" might contain "chemist", "supermarket" and "gun shop", allowing one to easily see a full list of all things that might be done while one is out but not be bothered by needing to buy fishfingers whilst browsing revolvers. Most of any task management system is narrowing down what one has to do so that it does not appear so overwhelming, after all.
This corresponds fairly well with the standard computer idea of nested folders. Some software (e.g. Taskpaper) instead uses tags, which should be quite familiar by now as well. One advantage of tags is that one can assign more than one tag to an item. If my local gun merchant actually did sell fishfingers as well, I could tag the "buy fishfingers" task with "supermarket" and "gun shop" and see it in either list, but would not see it when at the chemist. This is not possible with the Omnifocus sort of nested contexts.
I was considering today the program Things, and why I still end up preferring to use it over other alternatives despite some shortcomings, and one reason that occurred to me was that it did both. Things has tags, but those tags can be hierarchical. This enables me to place my tasks within an arbitrarily defined multidimensional Context Space. Top level tags in Things are generally treated as a category name, and the second plus level tags within them as values for that - so I can then rate my tasks by, say, place, urgency, time required and client. Perhaps I am thinking "what do I need to do urgently for MI5 while I'm at the supermarket? It has to be quick though, I have to catch the last bus home". Clearly a system which can tell me that I need to plant a recording device in the frozen food section, and that task would also just appear in a list of "things I need to do when I'm out", has advantages.