Last month Microsoft released a new application block - the Smart Client Offline Application Block. This application block of re-usable code and samples, can be used to model your own applications to allow them to detect the presence or absence of a network connection, cache data for use while offline, and re-synchronize data and tasks with the network once the application goes online.
According to David Hill, the block uses a store and forward mechanism which is suitable for message-based interactions with the network, such as you would get with a smart client operating in a service oriented environment. This is a very flexible model and doesn’t require the kind of tight integration between client and server you find with database merge-replication approaches to offline.
Download the Smart Client Offline Application Block
BTW, David also has a great article that goes into what a Smart Client actually is, titled What is a Smart Client anyway?. Definitely a great read.