Take a look at, for example, the BugBase chapter. It uses custom business entities instead of DataSets.
Each of the chapter uses a different design concept; so, it's not to say that using a DataSet is *the* solution, but it surely is *a* solution.
You may also want to check out this:
http://imar.spaanjaars.com/QuickDocId.aspx?ID=476
Cheers,
Imar