A semaphore is a temporary file that serves as a signal to the BBS. The existence of a semaphore file instructs a script or BBS to perform some action. For example, the logon script will look for a file named NOLOGONS.SEM. Logons will be denied if the file exists.
The .NET framework (from which the BBS is built) provides many ways for different programs to communicate with each other. Some techniques include web services, named pipes, remoting, and so on. These options are powerful but also suffer from a degree of complexity -- it is not trivial to initiate a web service call or connect to a service using remoting. Semaphore files, however, represent the lowest common denominator in terms of ease and compatibility. Every development environment, include MS-DOS batch files, can create a semaphore file with ease.
That said, semaphore files are supported by the BBS as an extension to the existing (modern) communication methods provided by Windows and .NET. You are not required to use them and they are not a primary means of communications.