Eso me pasó recientemente cuando necesitaba actualizar la tabla1 con valores de la tabla2 (en realidad debía pasar los datos de una a otra y borrar la tabla2).
Para ser este tipo de Update una sintaxis que funciona en SQL server 2005 es la siguiente
UPDATE T1 SET T1.campo1 = T2.campo1, T1.cammpo2 = T2.campo2 FROM Tabla1 T1 INNER JOIN Tabla2 T2 ON T2.campoLlave = T1.campoLlave
En la tabla 2 lo lógico es que debe haber un solo registro devuelto por la sentencia Join con respecto a la Tabla1.