Preemptive Interrupts and "Context Switching"
This is basically entirely platform and compiler dependent. Some MCUs/CPUs have hardware for saving some or part of the stack, some do not. 

Additionally, Stack saving/loading is compiler-determined on some platforms. At least on atmel's xmega MCUs, context saving is up to the code, rather then the hardware. You can therefore write naked ISRs that could muck with the previous context without too much trouble.  



Basically, there is no general rule aside from "read the docs of the CPU in question".