if (isset($node->form_id)) {
...

NAT should not require a form id for any of its functions unless it's doing form handling. stuff inside function nat_node_update() should be callable regardless of form presence, such as for batch processing or drush ops.

edit: the comments
@see http://drupal.org/node/197532, http://drupal.org/node/188377
reveal a d6 core bug that required form presence, however, that supposedly has been fixed in d7, so form check is no longer needed... actually it wasn't needed for d6 either. why not have different nodeapi and node save handlers for the inconsistency bug found in d6?