Well, I agree it needs a dedicated table - will be death to the DB otherwise I think.
I just think requiring the user to "mark" the thread will risk us having incomplete data. It is my experience so far that asking users to DO things often results in a lot of "durrrrrr" sounds all over the forum. Of course, the advantage of making it user selection is that existing users can "update" the downloaded items list themselves.
If this was a new install I would think it would be better that the action of downloading the item automatically updated the existing table. Unfortunately I already have something "hooked" onto that bit of the xthreads.attach.php...... if it was possible to add them both then that would be cool, but I see that there may be an issue with guest downloads.
You can see the code I used for the "hook" to the dedicated table in
this post and
this post (there is no hook in xthreads.attach.php but I don't know how else to say it).
I would definitely see this as a thing for the downloader/admin to use, and for the actual uploader to have no visibility on WHO downloaded the thread. In my experience it could cause squabbles and friction if an uploader discovers that user x downloaded and did not thank the thread (simmers are very emotional).