One place you can see the practical effect of namespaces is in storing preferences. Nampsaces are used to uniquely identify scripts for any script-specific stored preferences.
For example, if you have a script like this:
// ==UserScript==
// @name Script Name
// @namespace http://example.com
// @include *
// ==/UserScript==
GM_setValue("key", "value");
That would be stored in your preferences (accessible in prefs.js, and about:config) like so:
greasemonkey.scriptvals.http://example.com/Script Name.key
Note the format: greasemonkey.scriptvals . namespace
. scriptname
. key/variablename