The userdir is a directory passed to NetBeans on startup by the launch script (you can specify it on the command line by running with, e.g. --userdir /tmp/some/folder/that/need/not/exist/yet.
It contains configuration data that allows NetBeans to restore its state after shutdown; it also contains log files and other miscellaneous artifacts of running NetBeans. The config/ subfolder of the userdir is where changes made at runtime to the System Filesystem are written.
It is expected that applications built on the NetBeans platform will provide a custom launch script which will specify the userdir such that it does not overlap with any other platform-based application.
Only one running copy of NetBeans may use a single userdir at a time; there is a check built into which checks a lock file and if it is present, tries to contact the running instance via a socket, to determine if the lock file is stale or not. If it does not make contact, it will display a warning and ask the user if startup should continue.
Source: NetBeans FAQ