Read this forum entry I wrote about what could be a common NSIS coding mistake with macros. For instance, this code:
IfErrors 0 +2
!insertmacro LogProgressMessage '"There was an error..."'
will likely cause the error "Installer corrupted: invalid opcode" at runtime. Instead of using +2, you should use a label.