Using custom fields on a web form - New custom field not appearing: solution: set permissions

If you are creating a new web form for donations or event registration, for example. You may find that your new custom field does not appear on the form if you are not logged in.
In that case, you have to set your drupal permissions to allow anonymous users to have access to custom fields.

This is documented in the civicrm manual on the floss site too.

PowerBase - General