I can provide a little information for you, however I can not provide you code samples or any documentation on it as what we have done is "company confidential"....
We have a complete site that is fully web service based for all data. We actually have no user data in the DNN portal as well (we hacked the core to accomplish this). Anyway, this is what we did, and forgive me if this sounds very simplistic, but it really is...
We started off writing a simple class library project to make wrappers classes / objects for all the web service calls, which we would use create objects or data sets/datatables out of the data from returned from the service. i.e. a user object, or a datatable of customers... In the class library project, we would create the reference to the webservice. The class project we would just compile into a dll which would goto the bin directory and be accessable by our custom modules.
Then inside of our modules, we would reference the class library (which contains the webservice reference) instantiate the objects and use em as we needed.
Sorry for being so non-descriptive (damn corporate privacy!)... As far as I can tell, there doesnt seem to be any special magic in using a web service as long as you have it referenced, whether in a class library, or directly in your custom module... As far as using it, it is simply just another method call after you can created the object.
Depending on what you need form the webservice (ours was very complex, hence the need for the wrapper classes) you can simply add the web reference to your custom module project. Then at the beginning of each page, create a reference to it and it is usable just the same as a database provider. We did that on a few pages where simple functionality was needed, and we didnt have to create any special code to the best of my memory.
hope this helps some
Daks
Daks