The Moodle Mobile App provides some level of offline functionality but we've been working on a project with UNICEF recently to provide offline access to courses and allow completion data from SCORM packages to be passed back to a central server. I'm presenting about it at the Australian Moodle Moot but you could also touch base with our UK office who may be willing to show you a demo.
We do plan to release the code at some point too but I haven't had a chance to package it properly yet and it's still in testing.
Here's a brief summary of how it works.
We package a pre-built cut down Moodle install with apache/mysql in a Windows installer package using Installshield (mainly so we can build an MSI for deployment with nice shortcuts and good uninstall process) - but it would be easy to use our code to build a moodle on a stick style deployment. (we might do this in future ourselves)
The install that goes on the users local machine includes pre-configured code that connects to a main server to download courses and then upload the completion data.
Here's the way the local machine build does it.
on first install there are no users or courses on the local Moodle install so it asks you to login to the main site - this passes back some information to the local install related to the logged in user - (email/firstname/lastname) - then the user can also see a list of courses they are enrolled on the main site and download them to use on their local machine instead of on the main site. The main site sends a recent Moodle backup file (excluding user data) to the locally installed Moodle and creates it on the site.
The locally installed course contains a full copy of the main course but we pre-configure the capabilities to allow only read-only mode of things like forums and activities like assignments are disabled.
The only data we are currently syncing is SCORM - when a user has completed a SCORM package they can sync that data back to the main site - to simplify things we delete the local data after the sync. To check their full course completion status they must visit the main site.
At the moment we don't do anything with versioning of courses and there is definitely further room for improvements.
hopefully that makes sense! - feel free to drop me an e-mail or give our UK office a call if you have further questions.