The way I understand it, the IAT lets the computer know (among other things) how cold it is so it can adjust how long the warm up should take. If it is not sensing correctly it expects a faster operating temp & when (if) that doesn't happen it throws the code. (?)
Maybe on warmer days or on later-in-the day start ups it won't throw the code. That might point to a bad IAT sensor. Although there may be a certain # of failure cycles before throwing the code, I'm not sure. Again, make sure you have the correct thermostat.