Use modular spice containers that can stack on top of each other without falling. I find that round containers about an inch tall and two inches across are great, and easily available where I live. With this size, it's much easier to use a measuring spoon, other spoon, refill package. The containers I have aren't air-tight (too cheap, I get 50 for about $3), but I have enough turnover so that it doesn't really matter. You can always buy tupperware or other high quality containers that'll give longer shelf life.
Stack them in the cupboard in "families". The spices that get used together should be in the same stack. In my case, coriander seed, ginger, galangal, cloves and turmeric go in the same stack. I also have a stack for things that get used very often, like salt, pepper, cumin, chilli flakes etc.
The spices you use more often will migrate to the top of the stack quite quickly, so it gets more convenient as you go along.
The more physical aspects are quite simple too: Little light, no sunlight; no direct heat (i.e. not above the stove); not in the path of too much moisture (not above the stove or in the escape path of the steam); Keep some dessicant in the same cupboard, to soak up any moisture. I just store my various jars of rice in the same cupboard.