Your curtain controller might be like some air conditioners and use a MUCH longer code than the typical IR remote. This causes problems with the IRremote library because it has a relatively small buffer. Go into /Arduino/libraries/IRremote/IRremote.h and change:
#define RAWBUF 76 // Length of raw duration buffer
to a higher number like 300. Then you have to go into IRremoteInt.h and change:
uint8_t rawlen; // counter of entries in rawbuf
to
uint16_t rawlen; // counter of entries in rawbuf