HAM can perform a multistage recovery, executing several actions in a certain order. This technique is useful whenever strict dependencies exist between various actions in a sequence. In most cases, recovery requires more than a single restart mechanism in order to properly restore the system's state to what it was before a failure.
For example, suppose you've started fs-nfs3 (the NFS filesystem) and then mounted a few directories from multiple sources. You can instruct HAM to restart fs-nfs3 upon failure, and also to remount the appropriate directories as required after restarting the NFS process.
As another example, suppose io-pkt* (the network I/O manager) were to die. We can tell HAM to restart it and also to load the appropriate network drivers (and maybe a few more services that essentially depend on network services in order to function).