Basically whats causing otherwise normal bought/given objects to suddenly revert to no copy/no mod status is a permissions assignment bug percolating through and presenitng itself when someone attempts to mod/copy a succeptable item.
The bug can be re-created and studied abit (and hopefully in the future avoided) by doing the following series' of actions:
1) Create an arbitrary prim, for the sake of this exmaple say call it 'Sphere
2) Take this arbitrary prim, and set its permissions to be copy/mod
3) Take a no copy, no mod script, second prim, texture, or whatever else you fancy, and stick it as a contained object into Sphere's inventory (note this *WILL* set sphere to be no copy/no mod tho for scripting, especially av scripting, that becomes a nightmare i'll get into later)
4) Take sphere into your inventory
5) go to the properties of Sphere in your inventory, and re-check copy-mod (they *will* stick this time)
This effective'y sets sphere as a permissions time bomb. As it is now set copy/mod and will appear to be so, but upon use/copying, it will revert to nocopy/nomod status
6) find a friend or random volunteer and hand them Sphere from your inventory. They will recieve sphere as a mod/copy object that for all intents and purposes looks normal
7) have them attach sphere to their avatar, and then create a new outfit that includes it (the game will attempty to copy Sphere to that new folder, but will discover its supposed to be 'no mod/no copy' thanks to its container object, and will NOW set sphere as no mod/no copy and move it to the new folder
Thats it in a nutshell, i've seen it happen with linked objects as well but i haven't been able to come up with a 'recipe' for that yet.
Knowing this now the only current way to workaround it is simply don't put nomod/nocopy scripts/textures/sounds/rezzin objects inside of things you don't want to be no mod/no copy.
This un-fortunately has somewhat dire consequences for those who want to help other people by letting them 'use' scripts in their builds but not expose the source code for anyone to see. In the current system it simply can't be done without locking the object as well.
The actual bug of not tracing permissions in the inventory obviously needs to be fixed and im assuming now that its been pretty solidly documented, it will be.... as to making scripting 'safe' again... we need some kind of 'private' permissions for contained objects so that they can have them set, but not 'push' them onto their containers.
(and yes that will spread across any links that the container has and set all of them nomod/nocopy as well
)i do reccomend people take a look at their inventories, especially for any fancy linked/scripted accessories they might have purchased that weren't supposed to be locked... i found 7 of them myself :/
(i tend to backup avatars with the make outfit command alot though)