Without going into all the minutia, the way I would do it is use the onmoveascript. I'd set up a check that compares the base with altitude, and if the difference is big enough, then put the entity into a falling state and set their damageonlanding property. If you wanted to get fancy, you could use a formula to set a variable damageonlanding value based on the height difference instead of a static amount of damage.
DC