We've run into similar problems, but it may be more important to state that it also depends on where and how a #temp table is created in TempDB.
A 'Create Table #Temp' statement will default the tables collation to that of TempDB's. If you create the #temp table with a SELECT INTO #Temp from a DB with a different collation than TempDB, the #Temp table will have the collation of DB it was run from. The same holds true for regular tables you create outside your DB. When we ran into our problem, it wasn't apparent what exactly was occuring until we removed the '#' from the table name and created static tables which we could look at in more detail to resolve our problem.
My suggestion is, if you must use different collations on the same server, it's best to adopt a standard for creating #temp tables within your code. If you mix Creates and Select INTO for #Temp tables in your code you will eventually get burnt.