OK. There are a quite a few parameters you can tag onto the end of your shortcut to hl.exe, or straight off the command line (start >> run).

Here is a list of them, and what they do.

-console - this will enable the Half Life console. Press ~ (tilde) to bring it down in game, or use the console button in the main menu.

-game <variable> - this will set the custom game to whatever variable is set. eg cstrike, dod, dmc. The valid variables are the abbreviated names of the mods inside your base halflife directory.

-numericping - this will replace those goofy dots in the Halflife game browser with your actual ping time (measured in milliseconds, not dots )

-noipx - this will disable IPX support. Which is fine, because you don't need IPX at all for Halflife. Recommended

-noip - useful for single player. Will disable IP. (note: im not sure about this one).

-nointro - This is to skip the two avi's at the start.

-nojoy - disables joystick support.

-noforcemparms
-noforcemaccel - This will disable mouse acceleration. Useful for windows XP

-toconsole - when you open hl.exe with this parameter, it will load straight into the console.

-dev - enables developer mode. Useful for testing a homemade map, or debugging. Will show a more detailed summary of what is being loaded/initialized in the console. Use 'developer 1' and 'developer 2' in console to set debug message detail level

-d3d - will use direct 3D only.

-gl - will use OpenGL only.

-soft - will use software rendering only.

-full - will use fullscreen mode. Again, not important.

-win - window mode.

-wavonly - will disable directsound, and attempt to play all sound files as wav files.
-w <variable> - sets video mode width (variable is number of pixels wide).
-gamegauge runs the demo in demoname.dem in benchmaking mode and saves the results in fps.txt file. 1.0.0.9+ only. Can do the same thing in-game with cl_gg 1; gg in the console.

-heapsize <variable> - Where <variable> is how much RAM you got. Say you got 32 MB of RAM. Replace the variable with 32768. Don't be foolish and replace the variable with more than what you got in RAM. People with more than 64 MB of RAM sometimes feel that it's not using the RAM being supplied. Well, they're right. This command invokes to show Half-Life all the RAM that you have and it can be used.

-particles <variable> - Variable number is the number of particles for which to set aside buffer space. This is useful for seraching for leaks in maps.

-port <variable> - will set the port (for a listen server). Default is 27015.

-zone <variable> - appears to solve most script memory errors if you set it to 1024 (I believe the default is 255). Maybe the max line length (in characters) of a script or cfg file.

-noforcemparms - not sure what this does . I am guessing it disables multiplayer arms (weapons?).

NOTE: you can also add any console commands onto the command line with +command_name command_setting.

So, my hl.exe shortcut reads:
\sierra\halflife\hl.exe -game cstrike -console -dev -numericping -noipx -toconsole +exec kani.cfg