Wireless routers signal strengths vary depending upon a number of factors- going through walls or floors is a big one. Sometimes you'll be ok, other times the signal won't make it.
Using Internet Connection Sharing on the computer with the D-Link wireless card isn't really an option. That card is being used to communicate with the router/internet, so it's not available for an ad-hoc (computer to computer) connection. Your problem is no physical connectivity between machine #3 and the rest of the network, so ICS doesn't help- you'd need a 2nd network adapter to use the D-Link machine as a bridge, and Windows ICS is a poor solution compared to any dedicated hardware.
You best options are:
1) Run CAT5 cable between the two floors so the 3rd computer can connect via regular ethernet.
2) Try a wireless range booster- the trick with those is figuring out where to place it (needs to be a spot within range of both the router and your 3rd machine- so in this case probably in the room with computer #2)
3) Use powerline ethernet adapters to connect the two floors, and connect your 3rd computer via regular CAT5 cable. This is a nice option since it eliminates drilling holes or stringing long runs of cable between the floors. It's also free of wireless interference issues.
4) Upgrade your current Wireless-G router to a MIMO model, which will increase range. There are some Wireless-G MIMO routers, and of course Wireless-N routers qualify.
The most reliable is option is #1, the easiest is option #3 (since no software changes or reconfiguration are needed)