Since your configuration works most of the time, it would help if you could do some problem determination when it fails.
When you have a few minutes, and things are working, open a konsole and do some pinging. Know your IP address, and your configuration. Since you are connected to a DSL modem, you are probably running DHCP with your ISP. ( They assign an IP address ). Restarting the modem will cause a new address to be assigned. See if you can find out the IP addresses of the DNS servers your ISP provides. Try and ping them. Most of the ISP's I have dealt with allow pinging of their servers.
Not all ISP's use DHCP, there are some that assign you an IP address, and you have to configure it. If this is the case, try and ping that address when working, and when it fails. Post the results.
Some useful commands. In a konsole, '/sbin/ifconfig eth0' will list the current configuration of your ethernet card. I'm assuming this is hard wired, since you don't have a router. If it is wireless, then the name will not be eth0.
To restart your ethernet card, ( internal chip set ) try this. In a konsole 'ifconfig eth0 down' and then 'icfonfig eth0 up'
That will restart your ethernet card. See if that gets it going. All commands are without the quotes.
Do you have IPv6 enabled or disabled? It may be causing timeouts. To see if it is running, in a konsole run the command '/sbin/lsmod | grep ipv6' If there are listed modules, then the modules are loaded, and may be causing timeouts. In most cases you can disable it, and see if that helps. There are many tips on how to disable it, so search the board, if you decide you want to disable it. You can always enable it, if that proves not to be a problem.
Hope this gets you started in finding the problem.