You can send the .MDF file out with your app but the target computer must have access to a suitable SQLEXPRESS instance to use it. If the computer has an instance of SQLSX installed, you can reuse that. SQLSX is free to redistribute, so you can package it with your app..
Try not to see this as a hurdle. It is effectively the equivalent of writing your app in .NET 2. The machine needs the .NET framework 2 installed to run the app.
No .NET2. No app.
No SQLSX. No app.
you see webpages saying "This app needs the .net2 fw to run, download here"
Its no different for you to say:
"This app needs an instance of SQLSX to run, downlaod here (or include on cd)"
We even had this with Access - if you were trying to use an app and didnt have the Jet driver installed, you had to install it.. back then we called it MDAC.. When XP came along and all the computers in the wild already had jet drivers, we kinda forgot those olden days of installing it (or whatever OS it was where jet came as standard)
I dont know if vista has dumped jet and included SQLSX as standard, but it should do.. Then developers can write SQLSX apps like they did Jet apps, without worrying of the end machine has the drivers..