This kinda looks like a combination of a questionnaire and a task list. I think using a questionnaire list might be able to provide this funtionality, at least the yes no -> continue to next task bit, the notes i'm not so sure about. And a questionnaire stores information about the user who filled it in as well.
Another option is working with workflows, fired each time a user fills in a yes/no to take him to the next question, then goes to sleep until the user completes that task. This is SharePoint designer based though. (Or code based, if you go for creating a custom workflow in visual studio.)
The problem with questionnaire lists is that it would have to filled in completely in one time, there is no "save and continue later" functionality in a questionnaire list.
Another big issue here is security. You don't want employees of client A see what those of client B are doing. (A questionnaire list has the option of disallowing viewing of any answers but your own I believe).
Conclusion:
The security issue combined with the fact that a questionnaire will only get you so far (especially the fact it needs to be completed in one time) brings me to the complusion this is going to take some custom development. i.e.:
- a custom page on which a user can fill in a checklist
- a list to hold the different checklists
- a list that holds the questions with a lookup to the checklist definition list
- an answer list, where the answer plus notes are stored, with a lookup the the question list
the answer list will need to be able to set the security on the item level upon item creation (i.e. an itemeventreceiver), giving the person who answered nothing but read permissions to his / her own items only.
new answers will need to be added to the answer list using custom code that uses RunWithElevated priviliges, because the list itself will be full accessible to admins only.
The checklist entry page will need to check how far the user filled in a checklist. The checklist could be determined by:
- a dropdown showing all checklists,
- a link on the (support) homepage, by including the uniqueid of the checklist item in the querystring. Since i proposed to store checklists in a list, you can use the checklist listitem's uniqueid, which is a guid, so any tampering with the querystring is very unlikely to get them to another checklist.