(some people have different needs than what i'm going to talk about, because they have german keyboards or dvorak keyboards or non-standard hands, so you should let them bind their own keys, but let's assume we're working with qwerty keyboards and a standard set of hands, and you want to bind the default keys to something that doesn't piss most players off)
you're using wasd to move.
know that not everybody uses the same home keys. some people use shift-awd, with the middle finger on w (type i) and others use awdv, with the index finger on w (type ii)
know that some functions are needed all the time (like while the character is moving) so every player should be able to hold w and still get use of those functions.
when holding w, most (type i) people have access to this set: [ctrl]-[shift]-[caps]-[tab]-q-ert-fg-c (but not v)
when holding w, most (type ii) people have access to this set: q-erty-fgh-vbn (but not c)
assume that most people can't hit the keys outside of those sets without hurting their hands.
(there is a larger set, that includes all the keys on that side of the keyboard, that you're allowed to use for any function that the player doesn't need to use, while moving.)
the intersection of these two sets is qer-fg, so those are the only keys you can assume every player always has access to, even while moving - so only use those keys.
c-and-v are almost usable, everybody can get to at least one of those keys. what you should do is map the same function to both keys. have them cycle through spells or weapons or something.
(when I say "only use these keys" I'm being capricious, what i mean is "think about this shit")