We work a lot with CF applications here. If your devices support wireless, you can create auto-update features in your application without any problems. Basically, when the application starts, it checks the predefined URL of the manifest file, analyzes it to find out which version of .exe is on the server, and compares it with the version of .exe installed on the device. When a newer version is available, it pulls it from the server and transfers it to the desired location on the device. At this point, all the user needs to do is restart the application to get the latest version.
We based the logic on the code found in this article, and fixed it if necessary.
http://www.codeproject.com/KB/vb/Auto_Update_Revisited.aspx