Instead of using one of the pre-csh shells, e.g., sh, bsh, ksh, etc., would it be possible for you to code in csh or tcsh (*+_absolutely fuhgeddabout bash_+*)?
If it is possible for you to code in csh or tcsh, then the whole switch/case syntax becomes much more natural-looking and, therefore, much easier to code. An example based on your code fragment follows (the indentation I put in while composing this post unfortunately will probably get stripped out when the actual post is done):
switch ( "$var1" )
case "a":
# do something
# do something else
breaksw # a
case "b": # contains nested switch
switch ( "$var2" )
case "x":
# another command
breaksw # x
case "y":
# yet another
breaksw # y
endsw # var2
breaksw # b: contains nested switch
endsw # var1
On the other hand, it looks as though you may be trying to do something with fall-through, from case a to case b, and from case x to case y. If that is what is going on, delete the lines `breaksw # a' and `breaksw # x'.