What to do when you want to determine the current user in a workflow? It’s possible that the workflow runs inside the w3wp.exe worker process, in which case the current user makes sense. But it’s also possible that a workflow runs inside the owstimer.exe
process, at a later time. In these cases, the current user doesn’t make sense. Instead, use the workflow originator or initiator.
To get the e-mail address of the originator user:
workflowProperties.OriginatorUser.Email Or workflowProperties.OriginatorEmail
To get the display name of the originator user:
workflowProperties.Originator Or workflowProperties.OriginatorUser.Name
To get the login name (format [domain name]\[user name]:
These techniques can be used in workflows that are created programmatically. In a SPD (no-code) workflow, you can also retrieve the workflow initiator’s e-mail address: use the User Profile web service as a data form web part in the .aspx page of the workflow
to get the e-mail address whenever the initiator started the workflow.
http://social.msdn.microsoft.com/Forums/en-US/sharepointworkflow/thread/a5c5094c-5578-4e3c-83f2-62308f9f946f/ for the info.
Please note: Also check out the SharePoint 2010 Best Practice Overview page at
Worked first time , thanks