Хочу как раз на эту тему написать вечерком статейку в блог. Общий смысл: у setTimeout первый агрумент - функция! Использование строки же ведет к ошибкам! Так что:
setTimeout(function(){ flag=1; }, 1100);
setTimeout(function(){ alert("2)" + flag); }, 1100);