MkIV is ConTeXt’s feature without an doubt but it's not so easy as you think.
I have myself two modules which work only with MkIV (simplefonts and games) but bigger ones like simpleslides or letter are just complexer styles and you can't expect from a user to upgrade to MkIV just to make a presentation or to write a short letter.
I thought about integrating the version check into \setupmodule because the command is only used in modules and available in MkII and MkIV but Thomas and Aditya use it in the simpleslides module to pass parameters to the module and this a few times at different places and not only at the start of the file.
Perhaps this is too simple ... what about some passive check on behalf of the module? That is, would the MkII kernel evaluate another field in the module's header upon loading or ignore it because it doesn't recognize the additional info? In the latter case the MkIV kernel could evaluate the additional header and refuse to load the module if necessary. Of course, this wouldn't prevent an MkIV only module from being loaded in MkII but it would implement the compatibility check at least for MkIV. But that's probably fine given that some modules are MkIV exclusive already :-) And even for existing modules one will probably have to split into (frozen?) MkII and current MkIV versions at some point anyway ... Well, just a thought. Oliver