What I do is:
Create the Sharepoint Document Location (related to the SP Site) with a relative url (via CRM SDK).
Turn the file into a byte array and then I feed that to my HTTP PUT method to get the file up to sharepoint:
private NetworkCredential loginCredentials = new NetworkCredential(login, password, domain);
WebClient wc = new WebClient();
wc.Credentials = loginCredentials;
wc.UploadData(destinationUrl, "PUT", fileData);
destinationUrl is where I want it to go (http:\\spite\accounts\RyanonRails\examplefile.txt), fileDate is a byte[]. Make sure the user you're using has Full Control (so it can upload).
This method works great when you receive a report from SSRS.
Sidenote: When I tried to use the actual sharepoint 2010 copy.asmx web service it failed to work cross domain.