I don't know how you have your account configured, but for me, I use a single account to upload the blob into Microsoft Azure "temporary" area, then move the blob to another container based on the user login.
This might help. You can then use the asynchronous cross account copy
In effect, you using a single account with Cloud Uploader to files into a "temporary" area. Then, use the asynchronous cross account copy to move the files into your final destination.
An alternative way (and I think slower), is to copy from stream you can use (read the temporary blob into a stream, then write it back out again). Here is psudeo code:
CloudBlockBlob tempBlob = tempContainer.GetBlockBlobReference("temp_reference");
CloudBlockBlob blobToCreate = container.GetBlockBlobReference("final_location_reference");
Both references above can be built using different accounts, and, different containers.
Trick then becomes where to put the Blob Account information? If the accounts are static, then, the best location is to store your blob account information in the <appSettings> of your web.config.
Better yet, if you are using Windows Azure Web Sites (WAWS), store the keys in the <appSettings> section of your dashboard (and not in your web.config). This is very secure.
If your accounts are very dynamic, then, store the keys in a blob table (you can even get tricky and encrypt the info there).
Hope this gives a ray of hope!
Good night from California!