So you want to learn to how to create a website, eh? :-)
No, it doesn't have to cost money, but if you want the best experience it does.
A website consists of three things.
1) Storage space which is accessible from the Internet.
2) a URL which routes visitors to your website.
3) Choose your language
And there are as many combinations of those three items as there were dollars in your pocket in 2010.
Let's examine # 1 first.
Publicly accessible storage space is usually referred to as hosted space. It is usually provided by a company referred to as a web host. There are many free web hosts that will let you create simple HTML-based free websites in exchange for their right to append advertising to the top and/or the bottom of your website. Additionally, Windows provides a free web server which you can install and configure on your own computer. If you don't require a ton of bandwidth to support your site, your ISP will usually ignore you (most ISPs require that you do not act as a server on the Internet). You can open port 80 to the outside world, but before you do, make D.MN sure that you have a software firewall, NAT, and a good antivirus software running. You can serve your website for free from your own computer.
And then there are the ones that cost a few dollars and promise unlimited bandwidth. Some like GoDaddy (the best registrar on the planet, but not the best web host) cost as little as $40/year. Crystaltech.com has an $8/month beginner's (economy) option as well. Personally, my business website and several of my customers' websites are hosted on http://www.crystaltech.com.
2) You need a URL to route your visitors to your website. The URL or uniform resource locator, is the Internet address of your website. It might be as simple as http://www.it.com or as complex as http://www.yahoo.com/users/~JohnDoe. A URL always starts with HTTP:// or HTTPS://. Then its followed by the domain, like Yahoo.com or Google.com. Some web hosts require the www. and others don't. Sometimes you can create a URL with something other than the www. in the first spot... such as answers.yahoo.com. Then comes the first slash. After the slash can be either a file name or a folder name (physical or virtual). For example, http://answers.yahoo.com/questions.
If you use a free web host, they will dictate to you what your base URL is. But if you want to create one of your own, then you need to start here:
http://who.godaddy.com/whoischeck.aspx?ci=8926
Domains are cheap. They cost about $10 per year from GoDaddy.com. A company that sells domain names is referred to as a registrar. I use GoDaddy for all of my domains. In my opinion they are the best registrar on the planet.
Okay, now we have a domain (part of the URL), a URL, and a web host. Now you only need to decide what you want to create, and how.
You can create your website using ASP.Net, ASP, PHP, Perl, C#, ColdFusion, HTML, DHTML, XML, or any of a dozen (or so) other environments. Please, don't let this step scare you off. Start with the client-side HTML and grow into DHTML and move toward server-side code such as ASP.Net, ASP, php, etc.
Client-side refers to web code which runs or is interpreted by the user's (web visitor's) browser. Server-side refers to web code which runs or is interpreted by the web server. Server-side code is usually dynamic in that it creates custom client-side code from database or other server side inputs.
I guess that's a good start.
Let me know if you have questions. I'm easiest to reach via Yahoo Answers email.