I have been able to access my Arduino over the local network and I didn't have much issues with it.
Would it be possible to connect to the controller from remote locations eg. friends house by just configuring the
router or something? And is any additional code required? I know it is possible to do it using server->usb->arduino
but for my purposes I am not really interested in doing such thing. What im after is arduino<-router->user
Normally not a problem. Most routers have a "DMZ" setting that you can access the internal ips from the WAN interface. Then you access the Arduino using the public ip assigned to the router, and the router will NAT the packets and send them to the Arduino.
The challenge arises sometimes using port 80 on your public ip. Some ISPs block port 80 requests to non-commercial ip addresses. You might need to use an ip (edit: I meant port) like 8088 or thereabouts to get it to work.