This post briefly describes what data partitions are and what they can be used for, but most importantly, when you should NOT use them.
In short: Data partitioning allows for the complete isolation of your application data between organizational boundaries.
What does that mean to you:
You cannot share any data across these boundaries. As far as application data is concerned, these partitions might as well run on different systems. If there is a need for business data to cross these boundaries, you should not use partitions but instead use the capabilities of the organizational model.
Data required by the system is being shared across partitions. The most prominent example is the data for AIF and batch processing. Metadata is being shared across partitions, which means you will run the same codebase for all partitions. Any customization will be available in all partitions.
For a more detailed description of data partitions, refer to these Microsoft TechNet links: