I have a SciFi development that uses an arrow to point to certain things the player needs to "activate" or "move to". Once they get there, the arrow disappears. However, my arrow is not a decal, but an actual entity.
Using the switch for example and an entity named arrow, the arrow appears (can be activated via trigger when player passed through) and points to the switch. When the player moves up to the switch and activates it, the switch main script then sets the target to the arrow and activates that target with the following commands:
settargetname=arrow,activatetarget=1
The arrow script once spawned runs the main script and is sitting at the state to check and see if it was activated- if it was, it runs the destroy script; if not it loops back to check. That's where you use the "activated=1" or "activated=0" command for the arrow main script.
The same also would work for your second example. However, if the electrical box uses an alternate texture when it is destroyed, you can then script it to switch to the alternate texture, then activate the arrow and destroy it.
An easier method is to set a trigger to spawn your arrow. Set the Spawn Life to the number of seconds before it will destroy, or use the etimer to run the arrow's destroy script. There are other methods, but using one trigger and the arrow and scripting the arrow and the switch/electrical box is all that you need to do.

Twitter: @NFoxMedia