had a look, but I would need quite a bit of time to examine this e107, and I don't really have the time.
If You know a bit of php, and you understand the e107 system, you could try (I don't know the e107 system, and i don't have enough time to "learn" it)
use rand() when the user loads the page, this is the code (out put of rand is a random number)
stored in database with the requested download's ID, and the user's IP.
uses mail() to email it.
Then redirects to an input page, you input the code your emailed. POSTs to a script, SELECTs from the database, the code that the user inputs, checks that this user is indeed from that IP, then use the ID to find the download and download it..
DELETE the row with that activation code once all done.
For an example of any of the previous, just ask, I will give you one, but you might need to tweak it for e107.