I faced this scenario many times and when I Googled, there are many who have faced the same. I had added an Active Directory group to the site members group. Then I asked them to log in and make requests for a particular business scenario that triggered workflows. I had a scenario that another user could make a request on behalf of another. Simply someone is asking to reset an AD account of a person who lost his password. Given that there is a need to add a new list column called 'On Behalf Of' which is a person or group column, I simply used code to create an SPUser object through C# code using the people picker value where people picker was available in the request form to select the on behalf of user.
I got the username from the people picker comma separated values and used the following code to get the user.
SPUser onBehalfOfUser = web.AllUsers[onBehalfOfuserLoginName];