In XSLT 1.0, if you wish to refer to element or attribute names that are in a namespace, then the names must be prefixed. In 2.0 you can use xpath-default-namespace to establish a default.
If you want to write a stylesheet that can handle two variants of the input documents, either with or without a namespace (this happens when dealing with RSS, for example) the best way in my view is to write a preprocessing stylesheet that converts one variant into the other, so your main stylesheet doesn't need to deal with both formats.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference