Prevent Drupal from Delete a node and add you own action
I had to prevent Drupal from deleting a node and instead run my own functions to act on "delete" operation. I used the form_alter hook and removed the delete button and added my own button called Remove. This don't prevent users from calling the node/[nid]/delete, you have to set that in the permissions instead.