I think you should keep iteratei by default : if the user use an insufficient List module, he will get a classical "unbound value List.iteratei" error from the compiler, and will easily relate it to the code using your extension (as the "iteratei" name is apparent).
If you document that point, it could be much easier than a compile-time option that requires one to edit the Makefile. If you really want an option to disallow iteratei syntaxically, you could use command-line options to make that choice at runtime (that would be more flexible).
I don't know how well camlp5 handle command-line parameters, so I can't help you there.
Regarding camlp4, I don't remember why this extension didn't work with it
after that big refactoring, which gave birth to camlp5. I'm making a TODO
for myself to take a look at this.
In case you're interested, attached is a short camlp4 (>= 3.10) port of your extension (wich wasn't thoroughly tested). As you can see, changes are minimal. This is just in case, I don't have any opinion on what preprocessor you should use.
PS : the software license is the zlib/png license. Maybe you should mention it explicitely.