SQL Express 2005 should be fine for what you're trying to achieve.
What you need to think about here is how the SQL instance is exposed over the network and how clients are going to connect to it. This is going to be the same issue for any RDBMS you might choose, such as
MySql
[
^]
For example, within your office network all your users should be able connect to the instance. However, connecting to the instance from a remote location (clients site) wont be immediately possible because they're not on the same network.
In this case, you've probably got a public facing firewall that
you could configure to forward requests to the SQL instance [
^]
It depends entirely what you're trying to do. If you want a database to
always be accessible from multiple locations, you'd need to host a central database somewhere and expose it over the internet in a way described as above. Other options here might be creating web services that your application uses for data access rather than making direct database connections.
If you just need to do this during development time, and then you're going to hand over everything to the client to host internally (no longer requires public access), then keep the SQL instance on your network and think about setting up a VPN. People working in remote locations can then access the SQL Server through the VPN - you can do your dev work, then hand over.