Moddability was one of the main priorities during ICE development. Its engine was developed as a framework that could be used to create various vertical shooter games. Ships, weapons, levels, campaigns and even GUI are stored in human-readable YAML files that can be rewritten in a common text editor.
That said, there is no real scripting language, so you can’t implement completely new game logic without modifying the source. The main reason for this is lack of time; some scripting might be added in future (most probably with Lua).
To get started with modding ICE, see the Modding ICE tutorial. It explains basic tasks such as how to create a new ship, weapon or a level. For more details, see the Modding reference . Not everything is documented in the reference yet, especially not the GUI, which will see drastic changes in near future.
Despite its focus on moddability, some things in ICE are hardcoded. We have to prioritize getting an actual game done before making everything moddable. If there is some hardcoding that limits you, feel free to discuss it on the forums.