I have read the whole thread and really do not know should I laugh or cry.
When you try to access device by name you computer should figure out somehow what the heck is DNS-323 (or www.dlink.com), as it understands IP addresses only. So it should at least to resolve name to IP. It can do it either by using DNS server (local, not on the internet for internal devices) or by using NetBIOS protocol in case of windows systems. When windows machines go online they search for NBNS (NetBIOS name servers) or other windows computers who declared themselves as Master Browser and obtain name information from them.
When your NAS goes online and obtains its IP from DHCP server, some routers, can obtain its name and include in its database. If the router is also acts as DNS proxy server for your internal network and/or NetBIOS master browser it will supply this information to any device on your network which has its IP as DNS server.
That is exactly what happens when you use DHCP for you NAS. When you use static, your router has no idea about this name. If you want everything to work this way, configure static mapping of NAS IP to NAS MAC address in DHCP server settings of your router (as iit was suggested from the very beginning).
If you want to use static IP assignments and hosts file then:
1) use X.X.X.X<spacebar>name entry format. No # (it is comment!) or TAB. It is written in comments of hosts file.
2) Make sure that DNSClient serviced is running on your PC. IF it is a part of domain, it will be. If it is not (home PC), it will not be. IF it is not running, hosts file will not be checked and used at all.
From what I read you got your NAS online NOT because you modified hosts file. :-)
BTW. I have 2 notebooks in my home LAN, one is XP PRO and part of domain, another XP home. First one sees DNS-323 all the time. Second one was hit and miss until I modified hosts file and made dnsclient servise run at startup. My DNS-323 obtains its IP from DHCP server, which is statically mapped to its MAC address. Router is DI-624.