If you're playing against a good player, at least you won't immediately cede the game in the opening.
The next step that I found helpful was to play against a computer, but to have a real board set up, where I could play through different options to see where they lead. Here you have no time limit, so you can really take your time. I found that if I forced myself to take a minimum of five minutes of doing this, I could regularly beat the computer (in this respect it seems a bit binary - at a given difficulty setting, the computer beats you every time, until one day you skill edges past the computer, and now you beat it every time - there doesn't seem to be a phase where the outcome is unsure).
These two tactics advanced my game to a point where I could win about 50% of the time on blitz-chess sites - the good players would still thrash me, and I would completely thrash novices. Getting better from that point seems more difficult though, and seems to revolve around sinking massive amounts of time into the habit. Increasing your opening library knowledge gets exponentially expensive. Improving your mid-game analysis speed also seems to be very slow (although this seems to be linear, not like the opening library). I stopped developing chess at this point because I realized that I wasn't prepared to spend the time needed to become a competitive chess player - I'm good enough that I can beat most non-regular chess players, and that's good enough for me...
Playing long games was fantastic for improving my chess. Most chess teachers also advocate long games as the best way to improve your game. The two ways I found to play long games, were to go to my local chess club and sign up for tournaments and to play in leagues on ICC, the internet chess club.