The FileSystemWatcher class has a link demand for unrestricted CAS permissions. This means that it will verify that its direct caller (i.e.: your code if you're consuming the class directly) has unrestricted permissions.
Unfortunately, use of a link demands opens up potential security holes since the permissions of indirect callers (i.e.: code that calls your code) are not verified by a link demand. This means that an indirect caller with restricted permissions may be able to manipulate your highly trusted code into doing something nefarious on its behalf that it would otherwise not have had the permissions to accomplish.
One of the ways to prevent an attack of this sort is to apply a full demand for the same permission to any code that that consumes a type or member with a link demand. This will ensure that any indirect callers will be subjected to the same permission demand, thereby ensuring that they cannot do anything via your code that they would not have been able to do on their own. Application of a fully demand of this type is what is being shown in the MSDN sample code for the FileSystemWatcher.