For me, contexts are about the energy needed to switch between certain kinds of tasks. Changing location is an obvious one but so is going from the computer to the phone or the hoover or my DIY toolbox. Each one of these requires a certain amount of physical and mental setup so it makes sense to crank through similar items as time, context and energy allows.
Even within @Computer, which is a reasonable context for most people, I find there is too much variation. I'm a freelance computer programmer and it took me a long time to realise that the mental overhead involved with switching between programming projects is just too much to take trivially. Now, each client's project is a context and I'll work within that context for as long as is appropriate.
I also have an @Email context. It's mainly to stop me getting distracted when I should be cranking out code. Anything I need to send goes into @Email and gets done in one block. Other computer stuff goes into @Internet. It's typically easy, low priority stuff so it's handy to have when my energy is low.
Another use for these kinds of contexts is I can switch between them when I'm starting to get tired. I find it useful to switch between intellectual and manual tasks. It helps keep my focus so if I've spent an hour writing code or am getting stuck on a difficult problem, I might look for a task to do on my @Housework or @Office lists to refresh myself.
Hope these thoughts help!