With .NET 2.0, there is an SDK tool sgen that allows you to pregenerate the assemblies produced by the XmlSerializer. When you instantiate an XmlSerializer on a given type for the first time, the code internally writes out a C# source file that contains the code to save and load the appropriate XML. This gets compiled into a temporary assembly and means that the first time you hit this code, there is a delay while this accomplished.
This can be quite noticeable for web service clients hitting a complex service or a number of different services, particularly if the application is often started to perform a particular operation and then closed afterwards. The serializer cost is paid each time the application is run.
There is a hotfix available from Microsoft PSS that provides support for pregenerated XmlSerializer assemblies for web service clients with .NET 1.1 (SP1).