The NEC protocol sends each byte a second time, in bit-wise complement form, so it has built-in error detection and is very reliable. It's best with sort messages although X-10, Panasonic and others use it or very similar variants with up to 48 bits in each message. Hitachi uses a variant with >100 bit messages.
If you need lots of data, Crestron stuffs a lot into very short messages (10 bit periods with 5 possible states for each) using a combination of pulse width and space width encoding. It can also include forward error correction but it requires some sophisticated math skills (the kind that makes my head hurt) for that.
Bruce's site is full of good stuff, too.
Bookmarks