You can use back to back tar to do the copy. For example

 tar cf - file1 file2 dir1/file3 | su user_b tar -C ~user_b/somewhere -xf -

This will create ~user_b/somewhere/file1 as a copy of file1. ~user_b/somewhere has to exist first. There are some limitations on the tar format, but you are unlikely to hit them.

If it is just a single file then 

 su user_b bash -c 'cat > ~/file1' < file1

followed by adjusting the permissions might be less trouble.