Exposing a form to anonymous users
I guess the Field Permission module is what you need. It allows you to set finegrained permissions to fields. Once installed you can set the permissions to edit, view etc to the field on the manage fields tab of your content type...