You may have noticed that the examples of adding actions typically look like this:

<folder name="Actions">
   <folder name="Build">
     <file name="com-foo-SomeAction.instance"/>
   </folder>
</folder>

<folder name="Menu">
   <folder name="Build">
     <file name="pointerToComFooSomeAction.shadow">
        <attr name="originalFile" 
          stringvalue="Actions/Build/com-foo-SomeAction.instance"/>
     </file>
   </folder>
</folder>

And you may have noticed that actions are usually put, not directly into the Menu/ folders, but into subfolders of this Actions/ folder. Then we create .shadow files? that act like symbolic links, pointing to the real .instance file?. Why all this indirection?

The default UI in NetBeans includes the ability to rearrange, and even delete, whole menus or individual menu items. Many applications built on NetBeans will not want to expose such customizability, but some do. The Actions/ folder is shown in the options dialog (and also used from the key bindings editor); it makes it possible for a user to delete an action from menus and toolbars, but still be able to restore it at a later date - if there were not some UI for this, any deleted action would effectively disappear from the universe, as far as the user was concerned.

Source: NetBeans FAQ