As far as I know, a plugin can be deactivated in these conditions:
- manual deactivation
- failed plugin upgrade
- remove or rename the containing folder
- changing the active plugin list in the database
Hopefully someone else will come through and add to this if I missed any.