Pre-populate a user reference field during drupal commerce checkout - buying a gift for a user without manual username entry
I don't know ready solution from the box for your use case but it's possible to implement it with Drupal Commerce and Line items functionality.

You can extend Line Item with the user reference field "gift recipient".
User value will be saved on line item but not a product.
Than everything is in your hands.
E.g. you can click on option "Include this field on "Add to Cart" form. Or you can prepopulate this field using special get parameter in the "buy gift for this user" link.

For more information about extending Line Items see the video: http://vimeo.com/31459435