I'll take a crack at it
I'm assuming setting up a Source based game is similar if not the same as a HL1 engine server.
Linux server or Windows? (this matters)
The non-steam server thing is basically self explanatory, it sets up a server that is not or will not be recognized by the Steam master server list. You pretty much could still connect to it via the console within the game but you're more than likely going to want to use Steam for ease-of-use.
Now, as for setting it up, there are several ways to go about this. One is to upload all the nessecary files onto whatever server you are using. Go ahead and edit any .cfg/ini's you need to edit, upload those too. The tricky part comes in with accessing the server. Back when I ran a server or two, I used PuTTy to basically telnet into my server and issue commands. Which trust me, if you're using Linux and it's new to you, you're gonna have to learn Linux command line. Easier with Windows. With this I was able to log into the server, reset it, take it down, put it up, etc.
The guts of settings are the cfg's/inis. Player count limit, map availability etc
If you wanna add custom stuff, download it and read the install/readme guides on how to install. If it's worth its salt, an add on will tell you exactly where to place it's files, what lines of code you need to change, etc. If you add something or alter something, upload it to your server, overwrite the old file, telnet in and turn off the server, then turn it back on. This will obviously reinitialize its settings.
If Source games are different, then I dunno.
What you are looking for are L4D Dedicated Steam Server files. I think you can download/access them within Steam, if not,