"Save draft" form button for anonymous users
The condition is on line 1977 of webform.module.

You can remove the &amp;&amp; $user != 0 condition, but the comment above is valid. Removing the anonymous user check allows the form state to be saved in the database, with uid=0 and a valid sid. 

Removing the same anonymous user check on draft form retrieval, however, does not result in the active draft being returned to the anonymous user.

This functionality would require patching the webform module to allow storage of the $form_state in $_SESSION, or in a client-side cookie, which could be read as part of the draft form retrieval process. It would not be difficult to do, but would be a significant change in the webform module.

If you wish to pursue this, open a feature request in the Webform issue queue on Drupal.org, and message me with the link.