Here are a few points to remember:
With regards to RFC standards, DNS names are restricted to the characters A to Z, digits, and the hyphen(-)
Microsoft's machine naming is based on Netbios names which supports a much wider character set including the underscore (_),
Microsoft's W2K DNS supports alternate character set defined in RFC 2181 that specifies that a DNS label can be any binary string that does not necessarily need to be interpreted as ASCII.
Here is a subsection of RFC 1034
http://www.ietf.org/rfc/rfc1034.txt?number=1034
The following syntax will result in fewer problems with many
applications that use domain names (e.g., mail, TELNET).
<domain> ::= <subdomain> | " "
<subdomain> ::= <label> | <subdomain> "." <label>
<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]
<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
<let-dig-hyp> ::= <let-dig> | "-"
<let-dig> ::= <letter> | <digit>
<letter> ::= any one of the 52 alphabetic characters A through Z in
upper case and a through z in lower case
<digit> ::= any one of the ten digits 0 through 9
Note that while upper and lower case letters are allowed in domain names, no significance is attached to the case. That is, two names with the same spelling but different case are to be treated as if identical.
The labels must follow the rules for ARPANET host names. They must start with a letter, end with a letter or digit, and have as interior characters only letters, digits, and hyphen. There are also some restrictions on the length. Labels must be 63 characters or less.