Dropping old upgrade scripts in plugins. Suggestions how to proceed?

I have a few plugins that contain upgrade scripts that were necessary at some point in the past when upgrading an Elgg site to some newer Elgg release (and the plugin to the corresponding newer version compatible with this Elgg release). Now it's kind of a headache to keep these upgrade scripts up-to-date with any Elgg API changes made at a later point. For example, the upcoming Elgg 3 would require once again some rewrites of several upgrade script.

The difficult thing is that I would like to avoid the situation of someone upgrading Elgg possibly over several minor and major releases at a time (let's say from some 1.x up to 3.0) and decides to upgrade the 3rd party plugins only once after reaching the final Elgg version. At this point it might be too late (no backups in the worst case) if it turns out that something no longer works and you would get told (possibly only after asking for help here on the community site): " Sorry, you should have upgraded to version x.y.z of the plugin before you did upgrade Elgg to this version and the plugin to version x+1.y.z."

Or if we have to accept that "some" shit happens (that hopefully can be fixed by restoring some previous state from a backup), would there be a way to tell an admin for example on activating a plugin "Attention: you can upgrade to this version of the plugin only from at least version x.y.z or later" and not activating the plugin otherwise. Right now I manage the upgrades within my plugins and add a metadata entry to keep track of the upgrades already done  (value is equal upgrade release date). Can such a check be added within activate.php? The check could consist of checking the existence of the metadata entry (everything fine if it exists) and for new installations could check if any plugin content already exist (if not assuming a new installation) and then just add it (to allow for keeping track of future upgrades maybe).