IIRC, the only character that's not allowed is a '/'.  According to
"UNIX System V Release 4, An Introduction[1]" it recommends against using
the following characters since they have special meaning in the shells:

! # & ; | @ $ ^ * ? \ + - SPACE TAB BACKSPACE
' and " single and double quotes
( and ) parenthesis
< and > less then, greater than
{ and } brackets

sooner or later you'll come across filenames with a backspace in them.
They show up in a ls(1) but are difficult to delete.  You can use the 
find(1) command to track them down and remove them:

EX: If the filename shows up as 'xx' but really is 
'<some_special_char>xx<possibly_other_special_chars>', the
following command will allow you to delete it:

find . -name \*xx\* -exec rm -i {} \;

The book I referred to is an older UNIX text but I still find it very
useful:
[1] UNIX System V Release 4, An Introduction, p 62
Rosen, Rosinski, & Farber, ISBN 0-07-881552-5

Mark Courtney wrote:
> 
> Can someone please tell me what "Special" characters can not be used in
> directory names?

-- 
-scot