Well, you can check with triggers to see what the terrain is at the position of the casting unit and use If-Then-Elses to determine what does or doesn't happen.
Event - A unit begins casting an ability (or w/e is best, check with a triggerer)
Condition - None
Actions"
-If
~Terrain-type at (position of casting unit) equal to <your terrain choice>
-Then
~< Do these actions/effects >
-Else
~-If
....Terrain-type at (position of casting unit) equal to <another terrain choice>
etc...
You can imbed the if-then-elses in each other or list them all seperately, if done seperately then leave the 'Else' option blank. Do this by using the 'If-Then-Else, Multiple Functions' option at the top of the entire action list.
So, what you'd like to do is possible. Depending on how realistic you terrain, this spell may or may not work like you'd like it to. I.e. - A little spot of terrain under the unit (say, Lordaeron Dirt) could be entirely surround by another terrain (Barrens Grass) and be hidden by the casting unit's model, giving the appearance of the wrong art for the spell. Simple, bland terrains would bypass this problem. If you're just doing an arena then plain terrain should be fine.
You can allow multiple, similar terrain types to cause the same effects for a spell (ex: whenever cast over a Grass Terrain used in your map, the same effect happens. Whenever used over dirt, this effect occurs. etc...). This would allow you to diversify your terrain and help make it more visually appealing. Just make sure you use 'Or' conditions for the triggering.
//\\oo//\\