<p>NHibernate is not really a good fit for our environment due to all the dependencies. (Castle, log4net etc.)</p>

<p>Is there a good lightweight alternative?</p>

<p>Support for simple file based databases such as Access/SQLite/VistaDB is essential.</p>

<p>Ideally, something contained in a single assembly that only references .NET assemblies. If it only requires .NET framework 2.0 or 3.0 that is a bonus.</p>

Generally speaking, for your database backend to work with .net you need an ADO.Net provider for it.
For MS Access (Jet), the Provider is shipped with .net.
For SQLite, there is a selfcontained ADO.Net Provider.
As for the data access layer lib, if you want some abstraction over ADO.Net:
MS
Data Access Application Block
, a part of
ms enterprise library
.
iBatis.Net
(Was
retired
by the Apache Foundation in 2010)
MyBatis.net
ADOTemplate
from the Spring Framework.net
All those work well starting with framework 2.0 and up.
Basically,
you
choose (and there is a lot of choices)