Как правило, оптимизаторы запросов в MSSQL 2000 и 2008 очень разные. Таким образом, вполне возможно, что некоторые запросы будут выполняться значительно быстрее по одному из них - в основном, вам придется заново оптимизировать все ваши тяжелые запросы (возможно, с использованием некоторых новых функций - CTE, оконных функций, индексов с включенными данными, чтобы назвать несколько ).
По моему опыту, MSSQL 2008 обычно лучше "понимает" вложенные запросы, хотя в вашем случае это может быть иначе. Если ваша временная таблица идентична результату вложенного запроса, было бы очень странно, если бы вариант временной таблицы был быстрее (поскольку серверу нужно выполнить больше работы для получения того же результата).
Пока что я предполагаю, что вы не правы в том, что вложенные запросы являются причиной проблемы с производительностью, но я не могу сказать, что на самом деле является ее причиной.