A namespace is a way to use words and names in a context without getting these words confused with other uses or the general use of the word. Inside a namespace, a name has just one meaning(basically). This is similar to the concept of scoping.

In a programming language like C++, this means the same name for an object, variable, type or function can be used in different namespaces, without confusion or clobbering; for example you can refer to the function "swap" in two different namespaces("std" and "my") as: "std::swap" and "my::swap". This can be in the same line of code and the compiler is still able to understand and tell the two different meanings of "swap" apart.

You also can have namespaces in XML, where they help you to use two XML specifications in one document. Namespaces can be hierarchical i.e. nested, like a directory tree (hit the hotkey Windows-E on a windows system to browse).

In biology, scientists came up with the clever trick of using a different language, latin like a namespace which contains the names of species, and the other ranks of taxonomy. So that to the biologist, the word equus for horse refers to the family of horses, while the word horse has the normal meaning of "horses" or even means a specific horse.

On E2, you should be wary of using namespaces; often it is better just to node the word as it is. However, if you have decided to node it in a namespace, you could namespace it by putting a ":" between the namespace name(s) and the actual name. Be careful to put a space before and after the divider(:), because otherwise the search function will not find the node. For example, you could node the tarot card Fortune under
Tarot : Major Arcana : The Wheel of Fortune .
Still, this example is a case where it might be better to just node the card under The Wheel of Fortune or list and explain it under Major Arcana.

Namespaces and the search box:
How the search algorithm of Everything2 could be improved; Such an improvement would both make namespacing more effective, but would also make it superfluous in many cases.
 
As I understand it, the search algorithm currently finds its matches in just one or two SQL queries. This is fast, but instead I suggest that the search makes a search separately for each word found in the search box; After each search, it adds every match to a hash/associative array, with the match id/title as a key and increases this entry by one. Finally, the output is displayed in the order of displaying the keys with the highest number of matches first.
This way, the search for "Tarot Fortune Major Arcana" will rank the pages tarot cards and Tarot : Major Arcana : The Wheel of Fortune among the first two matches found, providing a ranking of search results.