<p>We have a fairly complex web application (.NET 3.5) that need to be launched from a CD-ROM (or DVD, or from an USB key). </p>

<p>I'm thinking of using Cassini and SqlCe for the database (we use LinqToSql for data access, so I think it's the only choice without rewriting the entire data access classes). Is anyone ever done something like that?</p>

<p>Notes : 
<a href="http://www.microsoft.com/belux/msdn/nl/community/columns/desmet/hostaspnet2.mspx" rel="nofollow noreferrer">http://www.microsoft.com/belux/msdn/nl/community/columns/desmet/hostaspnet2.mspx</a>
Kind of does what I want.</p>

Where are you going to get the web server to serve the ASP.NET pages? You can open stuff like straight HTML, Flash or Silverlight directly in the browser, but unless I am missing something, you need IIS to do the server side ASP.NET.
I don't know your requirements, but you might want to consider a WinForms app or even MFC (if you can't guarantee .NET is installed on the target computers).
This doesn't answer your database question though. SqlCE should work as the required assemblies can be distributed with your application. Another option is SQLite along with Subversion for your data layer. I have no experience with Cassini though.