This question has come up before I did a search and came up with these results. This seems to be a permissions issue you have.
http://www.infopathdev.com/forums/topic.asp?TOPIC_ID=63
http://www.infopathdev.com/forums/topic.asp?TOPIC_ID=923
Alse there are several alternative ways to get the Current User, like using .NET managed code or a webservice. Check out this
http://www.infopathdev.com/webstore/detail.aspx?itemid=18 - it is a cheap webservice that will solve many of your problems. It is also re-useable with any future InfoPath forms you create or other applications that need this capability.