An extension for Magento on Magento Connect (here) allows users to run a promotion similar to Buy X Get Y Free, but of different products (instead of a number of the same products). The caveat to this extension however is that it breaks a Magento 1.4.x installation completely, due to key changes in the coupon validation routines in the upgrade.
Anyway, I attach to this post the fixed file. Unzip this file, overwrite app/code/local/Sttl/Buygetfree/Model/Validator.php with the one inside the zip, and go create some promotions!
P.S: This (Sttl (md5: d991b3b4eb37f8be53545ba6795a02f9)) is a full version of all the module’s files if you find it easier to do it that way. Place this file in app/code/local and extract. Then create a file called Sttl_Buygetfree.xml in app/etc/modules and put this inside of it: