Two issues here:

1. Global `require`.  The global `require` is an optional global in AMD.  curl.js, for instance,  does not declare it by default (which has eliminated tons of newb confusion).  Also: developers can change the name of AMD globals (`define`, `curl`, `require`, etc.).

2. This is tricky since it is an async call.  Isn't there a chance in IE that  `ZeroClipboard.dispatch()` could get called before the async `require()` returns?  

I have no knowledge of how flash/ActionScript and browser/JavaScript interact, but I imagine there's a way to use `define` instead of `require` here.  Something like this?

```js
// execute this "named module". Note: the name is arbitrary, but should be unique / "namespaced".
define('ZeroClipboard/dispatch-capture', ['ZeroConfig'], function (ZC) { /* is there a way for ActionScript to capture ZC.dispatch here? */ });
```

This doesn't solve the async issue, but does mostly solve the global naming issue.  Devs who want to change the name of `define` are accustomed to having to change source code, so they won't complain much, I imagine.  

Alternatively: could we pass the name of the global `define` or `require` into the swf as a parameter???