This module provides the ability for customers to purchase virtual gift certificates for others.
The way that things work is a little different than other gift certificate systems; it is not necesary for the recipient of a gift certificate to enter a code. When a user buys a gift certificate, they enter the email of the recipient. If there is already a user associated with this email, the certificate is issued to this user. Otherwise a new user is created and the certificate is issued to them. Then an email is sent informing the recipient that "somebody has purchased a gift certificate for you valued at x dollars, this amount will be credited to your next purchase" (The email is configurable from the settings page). This way it is not necessary for a user to enter a certificate code.
The module handles the case of multiple certificates (and the certificate value >= the order total) properly. There is also the functionality for an to create gift certificates for users as well. The recipient of the certificate can be chosen from an autocomplete field or a pulldown list from the settings page).
UPDATE: I know some sites are using this code, but unfortunately I have not had time to maintain it. If anyone would like to take this project and polish it, I'm happy to give commit access.