Embedded Event Manager is a bit picky about the location of the EEM Tcl policies: although they are loaded into RAM when registered, they have to reside on the router itself. If you have a low-end router with no flash disk (I'm using 2800-series routers) or USB flash and you don't want to mess with your flash: device (to prevent accidental erasure), the only other place left is NVRAM:. Surprisingly, it works. First you define the directory where your EEM policies will be stored with the event manager directory user policy nvram:/ configuration command. Then you use the copy command to transfer Tcl file into NVRAM (for example, copy tftp://10.0.0.10/tcl/ep.tcl nvram:ep.tcl). Now you can register the policy with the event manager policy name configuration command.
To clean the NVRAM after you're done, use erase /all nvram: command, otherwise your files will be left there (even after write erase).