Well, not to be annoying or anything, but this isn''t a new idea

(at least in pen&paper RPG)
One of the classic solutions for the problem of people who would "specialise in everything" would be to simply have incompatible specialties (classic example : I specialise in Fire, so my progress at Water spells is hindered).
The trick is how you design the various "elements" of specialty you can have. Most games go for an elemental system, using the great classics (Air, Water, Fire, Earth) and possibly other more specialised, or intermediary elements (Life, Death, Ice, Poison, Electricity, etc).
My personal favourite, though (although I doubt it could be made into a cRPG magic system) is the system used in Mage : the Ascension. Magic goes through a cycle (similar in spirit to the 5 elements cycle in Chinese culture) that starts from Prime, the pure unadulterated magic force in the Universe, then goes through several stages (IIRC), Mind, Spirit, Life, Matter, Forces, then Time and Correspondence (the nature of space), and finally Entropy which terminates the cycle.
Each sphere can be learned separately, and each sphere allows a mage to influence specific aspects of reality. As your skill increase in a given sphere, the nature and magnitude of your control on this sphere becomes greater and greater, allowing for spells of biblical proportions.
Sadly, this sort of "freeform" system works really well in a roleplaying game, with a storyteller and players, but would be desperately hard to implement in a computer game.
Maybe with some sort of scripting language, but even then...
(
a more detailed explanation, you should give it a read if you want to see a *really* unique magick system)
Sancte Isidore ora pro nobis !
-----------------------------Sancte Isidore ora pro nobis !