My standard technique is what I think of as "character archetypes". That is, I usually try to overdesign the game, but instead of trying to come up with completely-fleshed-out characters early on, I focus on coming up with conceptual snippets: bits of character, which are often easier to invent and to tie into conceptual plots. I then "mix down" the game to characters by looking for which archetypes might combine well. A given character typically uses 2-6 archetypes.
Periodically, I re-examine the characters as things are growing. When a character is looking thin, I'll look for additional archetypes I can mix in, that I haven't already overused. These archetypes typically come in bunches of several related ones (related by plot or faction or some such), so pulling in one usually leaves me with a bunch more that need to get dealt with, so I assign those to other underserved characters. This usually provides me with great opportunities to place connections that otherwise don't exist in the game, thickening the web nicely.
I actually *write* the game quite late in the process, usually, after I've gotten the mixing to a point where I'm fairly happy with it -- that is, I try to design thoroughly before I start to write. This lets me blast through the writing very fast, with relatively few modifications later. (Although it does make the writing phase very intense.)
The other nice thing about the archetype approach is that they are often reusable -- when I design a Romeo and Juliet plot, for example, that gives me half a dozen character archetypes that I can slot into almost *any* game. This means that, if I come up with a good idea but never manage to fit it into this game, I might be able to do so in another one sometime later. So it's less frustrating to overdesign and wind up with leftovers...
Random Quote du Jour:
"God isn't dead, He's just got a lousy PR department."
-- John Berryhill