Namespace prefixes are used in managed Force.com AppExchange packages to differentiate custom object and field names from those in use by other organizations.
Example:
your field name – test__c
and your Namespace name is “app” then resultant field name will be “app__test__c”.
It is a very useful feature so that the API name of the Managed package should not conflict with native fields API Name.