What software are you using?
I know in Maya you can key procedural texture values, even bump values and transparency settings. Just set up a layered shader with the human skin on one node, and the snake skin on the other. Then just key the transparencies between the two. You could even set up a new attribute and load a set driven key so you could choose between different states of change.
But thats just Maya
Oh, and are you going to use blendshapes to cue a geometry change as well?