System.Transactions in .NET 2.0 provide a fantastic way to manage your transactions in .NET without having to resort to messy code that tracks and passes SqlTransaction objects around. Best of all is it supports lightweight transactions. So as long as your database does as well (SQL 2005 does, SQL 2000 doesn't) then you won't have to enlist the DTC. There's a great article on this here.