I can't see how this is desired behavior at all. It does NOT occur when the column name prior to "in" differs from the column name specified in the sub-query (judging from my quick test). I think this is a defect.
<FONT color=#0000ff size=2><FONT color=#0000ff size=2>
create</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>table</FONT></FONT><FONT size=2> Test1</FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2> </FONT></FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>(</FONT></FONT><FONT size=2>id </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>varchar</FONT></FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>(</FONT></FONT><FONT size=2>1</FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>),</FONT></FONT><FONT size=2> other </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>varchar</FONT></FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>(</FONT></FONT><FONT size=2>10</FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>))
</FONT></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>insert</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>into</FONT></FONT><FONT size=2> Test1</FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2> </FONT></FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>(</FONT></FONT><FONT size=2>id</FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>,</FONT></FONT><FONT size=2> other</FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>)</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>values </FONT></FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>(</FONT></FONT><FONT color=#ff0000 size=2><FONT color=#ff0000 size=2>'1'</FONT></FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>,</FONT></FONT><FONT size=2> </FONT><FONT color=#ff0000 size=2><FONT color=#ff0000 size=2>'test'</FONT></FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>)
</FONT></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>insert</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>into</FONT></FONT><FONT size=2> Test1</FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2> </FONT></FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>(</FONT></FONT><FONT size=2>id</FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>,</FONT></FONT><FONT size=2> other</FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>)</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>values </FONT></FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>(</FONT></FONT><FONT color=#ff0000 size=2><FONT color=#ff0000 size=2>'2'</FONT></FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>,</FONT></FONT><FONT size=2> </FONT><FONT color=#ff0000 size=2><FONT color=#ff0000 size=2>'test'</FONT></FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>)
</FONT></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>select</FONT></FONT><FONT size=2> </FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>*</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>into</FONT></FONT><FONT size=2> #Temp1 </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>from</FONT></FONT><FONT size=2> Test1
</FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>update</FONT></FONT><FONT size=2> Test1 </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>set</FONT></FONT><FONT size=2> id </FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>=</FONT></FONT><FONT size=2> </FONT><FONT color=#ff0000 size=2><FONT color=#ff0000 size=2>'3'</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>where</FONT></FONT><FONT size=2> id </FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>in</FONT></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2> </FONT></FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>(</FONT></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>select</FONT></FONT><FONT size=2> id1 </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>from</FONT></FONT><FONT size=2> #Temp1</FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>)
</FONT></FONT><FONT color=#008000 size=2><FONT color=#008000 size=2>
--Msg 207, Level 16, State 1, Line 1
--Invalid column name 'id1'.
</FONT></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>
alter</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>table</FONT></FONT><FONT size=2> #temp1 </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>drop</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>column</FONT></FONT><FONT size=2> id
</FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>update</FONT></FONT><FONT size=2> Test1 </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>set</FONT></FONT><FONT size=2> id </FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>=</FONT></FONT><FONT size=2> </FONT><FONT color=#ff0000 size=2><FONT color=#ff0000 size=2>'3'</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>where</FONT></FONT><FONT size=2> id </FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>in</FONT></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2> </FONT></FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>(</FONT></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>select</FONT></FONT><FONT size=2> id </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>from</FONT></FONT><FONT size=2> #Temp1</FONT><FONT color=#808080 size=2><FONT color=#808080 size=2>)
</FONT></FONT><FONT color=#008000 size=2><FONT color=#008000 size=2>--(2 row(s) affected)
</FONT></FONT>