In some cases, a duplicate way of performing certain tasks is available because they further abstracted it in a subsequent version. Think about the WebClient class which I believe was introduced in .Net 2.0. It basically wraps a lot of the common tasks you used to have to do with several different classes (HttpWebRequest, HttpWebResponse, StreamReader, etc). The old classes are obviously still there if you need to do things a little differently, and for backward compatibility, but if all you need to do is download a resource from the web as a string, you've got WebClient.DownloadString.
Also, you're usually using .Net because you're not splitting hairs over cpu cycles, so the solution with the least amount of code is the preferred method if you're not concerned with performance. If you're programming a server task where no user is going to be "waiting" on a process and you need to open one file and read it into a string, go with the static method that lets you do the whole thing in one line.