Access machine in a subnetwork after a router
Solution 1:
The following holds true for both examples:
If the sub router is acting as a plain gateway/network bridge and has two interfaces with a valid ip on both, the answer is yes on both counts.
If the sub router however is running any form of NAT that hides the internal addresses from the outside ones, the answer is no. You will be able to set up port forwarding from the machines inside to the routers external interface, then communicate via that - however, this does get more complicated when you have additional routers.
For example.
Machine 1 is behind a NATed router, it hosts a webserver. Any machine behind that router / on the same network can access via http://IP.address, however, machine two or any machine outside the network will access it via http://routers.ip.address (when port 80 is forwarded to the internal interface).
If you simply have it set up as a bridge/gateway, you will have no duplicate IPS, for example, machine one would be 192.168.0.x and machine two would be 192.168.1.x (both on a 255.255.255.0 or /24 subnet), then, it would simply be a matter of typing the real IP address to access the same web server (firewalls and everything else permitting).
If you are architecting a new network from scratch, I would highly advise you go down the gateway/bridge path as it is (in my books) the best way of doing it.
I hope this helps, if you want clarification on anything, please write in comments and I will happily expand.
Solution 2:
Of course it's possible! The internet itself as a whole is just a giant network of interconnected routers, switches, bridges, hubs, and other network devices and end devices. Similar functionality is applied to LAN technologies. Assuming they are on different subnets, you can bind a second IP address to your card that is on the alternate subnet. The method will vary depending on your operating system, and it is dependent on how the routers are configured as Wil outlined.