I ran into this same issue using VS2010. The solution is to create a custom client using WSE security without encryption. I found information
http://webservices20.blogspot.co.il/2008/11/introducing-wcf-clearusernamebinding.html
The web method creates a new request and the custom client, and then calls that request using the client:
//Create request object
wsRequest req = new wsRequest(Param1, Param2);
//Create client object
CostpointwsClient client = CreateClient();
//Call web method using client and request objects, catch with response object
resp = client.wsMethod(req);
Here is the code for creating the custom client:
private wsClient CreateClient()
{
SecurityBindingElement securityElement = SecurityBindingElement.CreateUserNameOverTransportBindingElement();
securityElement.AllowInsecureTransport = true;
securityElement.EnableUnsecuredResponse = true;
securityElement.IncludeTimestamp = false;
TextMessageEncodingBindingElement encodingelement = new TextMessageEncodingBindingElement(MessageVersion.Soap11, Encoding.UTF8);
HttpTransportBindingElement transportElement = new HttpTransportBindingElement();
CustomBinding binding = new CustomBinding(securityElement, encodingelement, transportElement);
EndpointAddress ea = new EndpointAddress(WebserviceURL());
wsClient client = new wsClient(binding, ea);
var cred = client.ClientCredentials.UserName;
cred.UserName = username;
cred.Password = password;
return client;
}