A script object comprises the Babble-On Script intreperter and a set of commands which that script supports.
Most scripts just use the $default_script object, but some script objects add additional functionality on top of that, such as the $npc_centric_script (which adds commands for controlling a NPC) or a $holographic_advertisement_script (which is a type of $npc_centric_script which creates a hologram).
Usually an item enabled by a script consists of 3 parts:
The object itself.
The script (the text file).
The script object which supports the commands in the script.
The object itself usually has a verb which loads the script and executes it against the script object.
The inner workings are much more complex, and much more simplified from a programmers perspective (that's called good encapsulation), but that's the basic idea.
An example of this might be:
Hookie (an NPC object)
The 99 bottles of beer on the wall script
The $default_script object.
Hookie has a verb ('sing') which causes him to load the 99 bottles of beer script and execute it against the $default_script object. This in turn causes him to sing 99 bottles of beer.
The same paradigm applies to drugs:
The Drug object
The drug effect script (the text file)
The $drug_effect script object which supports the commands in the drug effect script.
Obviously the drug effect script is going to have some custom commands which allow you to do things like temporailly raise/lower stats and possibly modify look_places or however we decide to implement the effects of drugs.
Hope this makes some sense...