The userpatch.ini is an optional game file that allows "user patches" to be used by the game. This takes the form of loading hakpack files not attached to any module. Some of this information was sourced from the Beamdog forums.
The original 1.69 game had a way for users to load files as patches, called nwnpatch.ini - this was intended presumably for game patches and was rarely used by modders, and also only can reside in the games installation folder.
In Enhanced Edition it was altered to be specifically the userpatch.ini file. This would go into the root documents folder, eg: "\Documents\Neverwinter Nights\" similar to nwn.ini
The game will load these in a content order which is a priority above the override folder (and default game data), but below the module and hakpacks.
Do not use userpatch.ini to build modules, instead add the content as hakpacks and distribute these instead. userpatch.ini is intended for override content only that applies to every module and is usually kept to visual changes only.
The toolset does not load userpatch.ini.
Setup - Patch Directory
You put the HAK files into folder, called by default "patch", eg: "\Documents\Neverwinter Nights\patch"
This folder doesn't exist in the default Neverwinter Nights but is easily created.
Then the userpatch.ini which goes into the main root folder, eg: "\Documents\Neverwinter Nights\" has this format:
The 000 file is loaded last, and is overriden by the ones below it (in the example files from PatchFIle002 are always loaded and if any names clash in 001 and 000 they will take precedence).
Users can delete or rename userpatch.ini to easily remove the files from use all at once.
Setup - Hak Directory
You put the HAK files you want in to the "\Documents\Neverwinter Nights\hak" directory.
Then alter the name of the line PATCH= in nwn.ini such as the below example where it is now pointing to the hak folder:
Use the same userpatch.ini file as above.