Well, I just got myself a *working* copy of Half-Life 2, a game many of you would have finished. well I'd finished quite a lot on my old GF2 PC, but playing it on a GF6 is a different expereince altogether. So I decided I'll get some tweaks and put some together for you'll too ! This is what I ended up with 
Tweaks :
Connection Tweaks:
Useful for those playing online, I'm not sure if they work for CSS as well
While this setting does not improve your connection it does help stop the confusion between connection lag and graphics related lag when, for example, jumping from 85 FPS to 23 FPS. Set this by monitoring your FPS while playing using net_graph 3 or cl_showFPS "1", then set fps_max to your average steady FPS. There is no point in setting fps_max higher than your monitor refresh rate.
This controls network packets so that your connection bandwidth does not get saturated, setting is for maximum bytes per second. See net_graph for a guide on how to adjust this setting or try the suggested settings that appear at the foot of this page.
Further tweaking, try to set cl_cmdrate to equal your average framerate or your fps_max setting or a divisor of it without saturating your upstream bandwidth. Example, if you are currently at fps_max "76" then try a cl_cmdrate value of 38 or 76 for a digital connection.
This setting determines how weapons fire is controlled, for example with regard to weapon trails, sounds and animation.
If you set this to 1 the clients weapon sound and animation will all happen client side as soon as you press fire. It should be noted that when set to 1 the animations and marks displayed are determined client side, as a result they may not be an accurate representation of where you are actually hitting.
It should be noted that the server always determines if you have hit your target or not, only weapon related sounds and animation are controlled by cl_predictweapons.
You may find it useful to bind different settings of cl_predictweapons for different weapons.
cl_smooth
cl_smoothtime This setting helps smooth out movement if there are prediction errors caused by poor internet connection.
cl_smooth enables or disables smoothing.
cl_smoothtime determines the amount of seconds that prediction errors must occur before smoothing is enabled.
These settings determine if duplicate commands(cl_cmdbackup) or packets(cl_resend) are sent, if a command gets lost then a 'backup command' in the latest packet may still be received. If you have an excellent connection with very little or no packetloss at all then try setting cl_cmdbackup to 0 and raising cl_cmdrate. However, as with all settings experiment to see which is best suited for your connection - See net_graph for a guide on how to determine if you need to adjust this setting.
Suggested settings are in the table that follows. They are however guidelines, adjust them as needed by monitoring your connection using net_graph and alter settings based on its information.
LAN
56K Modem
Common Commands :
cl_showfps [0,1,2] - Draws a Frames Per Second (FPS) counter at the top of the screen. 0=off, 1=FPS, 2=Smoothed FPS. In general the smoothed fps counter is best for viewing framerates
cvarlist [string] - If entered by itself this command generates a list of all the command variables (cvars) in HL2. If one or more characters are also entered, cvarlist will list all commands starting with those letter(s).
help [cvar] - Provides any available help text for the specified cvar.
find [string] - Finds cvars with the specified string in their name or help text.
revert [cvar] - Reverts cvars to their default value.
differences - Shows all the cvars which are not at their default values, showing which have been changed.
exec [configfilename] - Executes all valid commands within the specified configuration file. The file must be a plain text file with the name filename.cfg and reside in the same directory as config.cfg.
clear - Clears all text from the console.
echo [string] - Outputs the specified string to the console (e.g. echo banana prints the text banana in the console).
version - Shows the current version of the game. The version number of the HL2 executable is effectively the version number for the entire game. Also shows the current build of the Source engine being used.
pause - Pauses the game.
unpause - Unpauses the game.
autosave - Saves the current game to the autosave slot. Will not work if autosave is completely disabled as per the instructions in the Conclusion section.
sv_autosave [0,1] - If set to 1, allows HL2 to automatically save your progress at level transitions. If set to 0, game will not save whenever a new level starts, but may still save periodically at certain trigger points within a level. To disable all autosaving see the Conclusion section of this guide.
save [savename] - Saves the current game under the savename specified.
load [savename] - Loads a game from the specified savename file.
reload - Reloads the most recent saved game.
restart - Restarts the game on the same level.
kill - Kills Gordon.
flush - Flushes the cache memory. Can resolve graphical anomalies such as texture glitches.
map_background [mapname] - Runs a map as the background to the main menu. To find the mapnames, use the maps command (see below).
maps [string] - Lists all maps starting with the provided string. Use maps * to list all mapnames.
screenshot - Takes a screenshot.
jpeg [filename, quality] - Takes a screenshot as a .jpg with the specified filename using the quality % specified (e.g. jpeg snapshot 50 saves a screenshot as snapshot.jpg with 50% quality). If no quality is specified the default as set by jpeg_quality will be used (see below).
jpeg_quality [percentage] - Specifies the default quality percentage for screenshots taken with the jpeg command (see above).
path - Shows the engine filesystem paths.
exit - Exits Half Life 2 and returns to the Desktop.
quit - Exits Half Life 2 and returns to the Desktop.
Demo Commands :
record [demoname] - Starts recording a demo of the current gameplay under the specified filename. The demo will be saved as demoname.dem in the \Program Files\Valve\Steam\SteamApps\[username]\half-life 2\hl2\ directory along with all its associated files.
stop - Stops recording the current demo.
demoui - Opens a small demo user interface which looks like a media player, but makes the opening and playing of demos much easier, including the capability to FF, REW and skip to specific points in the demo.
playdemo [demoname] - Plays back a pre-recorded demo of name demoname.dem.
stopdemo - Stops playback of the currently playing demo.
demopause - Pauses playback of the currently playing demo.
demoresume - Resumes playback of the currently paused demo.
listdemo [demoname] - Provides details of the specified demo file.
demo_recordcommands [0,1] - If set to 1, records any commands typed at the console into demo files.
startmovie - Starts recording movie frames, stored in the \Program Files\Valve\Steam\SteamApps\[username]\half-life 2\hl2\ directory as .tga files.
endmovie - Stops recording movie frames.
Binding Commands :
bind [key, command] - Binds the stated command to the specified key (e.g. bind Z console binds the Z key to opening the command console).
bindtoggle [key, command] - Same as the bind command, except the assigned key can be used to both turn the command on and off (e.g. bindtoggle F cl_showfps 2 means the F key will toggle the FPS counter on or off).
unbind [key] - Removes any bindings from the specified key.
unbindall - Removes bindings from all keys.
alias [aliasname, command] - Gives a command a short name (e.g. alias taunt echo I am your new King! changes 'taunt' into a command which spits out "I am your new King" when used). Use alias as a shortcut for long or complex command strings.
key_findbinding [command] - Find the key bound to the specified command.
key_listboundkeys - Lists all the keys which currently have a binding.

Tweaks :
Connection Tweaks:
Useful for those playing online, I'm not sure if they work for CSS as well

fps_max
While this setting does not improve your connection it does help stop the confusion between connection lag and graphics related lag when, for example, jumping from 85 FPS to 23 FPS. Set this by monitoring your FPS while playing using net_graph 3 or cl_showFPS "1", then set fps_max to your average steady FPS. There is no point in setting fps_max higher than your monitor refresh rate.
rate
This controls network packets so that your connection bandwidth does not get saturated, setting is for maximum bytes per second. See net_graph for a guide on how to adjust this setting or try the suggested settings that appear at the foot of this page.
Similar to cl_maxpackets in Quake3 this setting restricts the number of packets being sent to the server by your client and can be used to help connection bandwidth related problems for those with low upload bandwidth. Note that 56K modems, while downloading at up to 56000 BPS, only upload at 33600 BPS or less. You may wish to experiment with a higher or lower setting based on your connection type, for example 40 or higher for a digital connection.cl_cmdrate
Further tweaking, try to set cl_cmdrate to equal your average framerate or your fps_max setting or a divisor of it without saturating your upstream bandwidth. Example, if you are currently at fps_max "76" then try a cl_cmdrate value of 38 or 76 for a digital connection.
Similar to snaps setting in Quake3, the cl_updaterate setting is used to calculate how many gameworld updates you receive from the server. See net_graph for a guide on how to adjust this setting.cl_updaterate
To use this setting the server and modification must support lag compensation. On servers that have lag compensation enabled this setting toggles its use of lag compensation for the client, 1 to enable, 0 to disable. When set to 1 the server will take into account your ping when deciding if you hit your target or not. If you have a very low ping or wish the older style of play then set this to 0.cl_lagcompensation
cl_predictweapons
This setting determines how weapons fire is controlled, for example with regard to weapon trails, sounds and animation.
If you set this to 1 the clients weapon sound and animation will all happen client side as soon as you press fire. It should be noted that when set to 1 the animations and marks displayed are determined client side, as a result they may not be an accurate representation of where you are actually hitting.
It should be noted that the server always determines if you have hit your target or not, only weapon related sounds and animation are controlled by cl_predictweapons.
You may find it useful to bind different settings of cl_predictweapons for different weapons.
cl_smooth
cl_smoothtime This setting helps smooth out movement if there are prediction errors caused by poor internet connection.
cl_smooth enables or disables smoothing.
cl_smoothtime determines the amount of seconds that prediction errors must occur before smoothing is enabled.
When setting this to 3 or 1 you will see a figure display(3) or graph display(1) appear at the base of your screen. On the graph display, just below the numeric readout, green lines mean packets are being received okay, yellow that rate capping is causing your client to reject packets and red that the packet was lost. If you have steady flat green line then all is well. In the case of long rising/falling green hills lower your rate or decrease your cl_updaterate, for yellow increase your rate. If you have a lot of red then change ISP or server. If you have to play on the server or use the ISP then try adjusting cl_resend or cl_cmdbackup to compensate for the lost packets.net_graph
cl_cmdbackup
cl_resend
These settings determine if duplicate commands(cl_cmdbackup) or packets(cl_resend) are sent, if a command gets lost then a 'backup command' in the latest packet may still be received. If you have an excellent connection with very little or no packetloss at all then try setting cl_cmdbackup to 0 and raising cl_cmdrate. However, as with all settings experiment to see which is best suited for your connection - See net_graph for a guide on how to determine if you need to adjust this setting.
This determines if downloads are allowed during a multiplayer game. this to 0 to stop downloading of decals etc. while playing.cl_download_ingame
Suggested settings are in the table that follows. They are however guidelines, adjust them as needed by monitoring your connection using net_graph and alter settings based on its information.
LAN
ADSL / Cable / Wirelesscl_updaterate "40"
cl_cmdrate "100"
rate "25000"
cl_updaterate "40"
cl_cmdrate "60"
rate "25000"
56K Modem
cl_updaterate "20"
cl_cmdrate "30"
rate "(See Table Below)"
50000 BPS: rate "5500"
48000 BPS: rate "5200"
46000 BPS: rate "5000"
44000 BPS: rate "4800"
42000 BPS: rate "4500"
40000 BPS: rate "4300"
38000 BPS: rate "4100"
36000 BPS: rate "4000"
Common Commands :
cl_showfps [0,1,2] - Draws a Frames Per Second (FPS) counter at the top of the screen. 0=off, 1=FPS, 2=Smoothed FPS. In general the smoothed fps counter is best for viewing framerates
cvarlist [string] - If entered by itself this command generates a list of all the command variables (cvars) in HL2. If one or more characters are also entered, cvarlist will list all commands starting with those letter(s).
help [cvar] - Provides any available help text for the specified cvar.
find [string] - Finds cvars with the specified string in their name or help text.
revert [cvar] - Reverts cvars to their default value.
differences - Shows all the cvars which are not at their default values, showing which have been changed.
exec [configfilename] - Executes all valid commands within the specified configuration file. The file must be a plain text file with the name filename.cfg and reside in the same directory as config.cfg.
clear - Clears all text from the console.
echo [string] - Outputs the specified string to the console (e.g. echo banana prints the text banana in the console).
version - Shows the current version of the game. The version number of the HL2 executable is effectively the version number for the entire game. Also shows the current build of the Source engine being used.
pause - Pauses the game.
unpause - Unpauses the game.
autosave - Saves the current game to the autosave slot. Will not work if autosave is completely disabled as per the instructions in the Conclusion section.
sv_autosave [0,1] - If set to 1, allows HL2 to automatically save your progress at level transitions. If set to 0, game will not save whenever a new level starts, but may still save periodically at certain trigger points within a level. To disable all autosaving see the Conclusion section of this guide.
save [savename] - Saves the current game under the savename specified.
load [savename] - Loads a game from the specified savename file.
reload - Reloads the most recent saved game.
restart - Restarts the game on the same level.
kill - Kills Gordon.
flush - Flushes the cache memory. Can resolve graphical anomalies such as texture glitches.
map_background [mapname] - Runs a map as the background to the main menu. To find the mapnames, use the maps command (see below).
maps [string] - Lists all maps starting with the provided string. Use maps * to list all mapnames.
screenshot - Takes a screenshot.
jpeg [filename, quality] - Takes a screenshot as a .jpg with the specified filename using the quality % specified (e.g. jpeg snapshot 50 saves a screenshot as snapshot.jpg with 50% quality). If no quality is specified the default as set by jpeg_quality will be used (see below).
jpeg_quality [percentage] - Specifies the default quality percentage for screenshots taken with the jpeg command (see above).
path - Shows the engine filesystem paths.
exit - Exits Half Life 2 and returns to the Desktop.
quit - Exits Half Life 2 and returns to the Desktop.
Demo Commands :
record [demoname] - Starts recording a demo of the current gameplay under the specified filename. The demo will be saved as demoname.dem in the \Program Files\Valve\Steam\SteamApps\[username]\half-life 2\hl2\ directory along with all its associated files.
stop - Stops recording the current demo.
demoui - Opens a small demo user interface which looks like a media player, but makes the opening and playing of demos much easier, including the capability to FF, REW and skip to specific points in the demo.
playdemo [demoname] - Plays back a pre-recorded demo of name demoname.dem.
stopdemo - Stops playback of the currently playing demo.
demopause - Pauses playback of the currently playing demo.
demoresume - Resumes playback of the currently paused demo.
listdemo [demoname] - Provides details of the specified demo file.
demo_recordcommands [0,1] - If set to 1, records any commands typed at the console into demo files.
startmovie - Starts recording movie frames, stored in the \Program Files\Valve\Steam\SteamApps\[username]\half-life 2\hl2\ directory as .tga files.
endmovie - Stops recording movie frames.
Binding Commands :
bind [key, command] - Binds the stated command to the specified key (e.g. bind Z console binds the Z key to opening the command console).
bindtoggle [key, command] - Same as the bind command, except the assigned key can be used to both turn the command on and off (e.g. bindtoggle F cl_showfps 2 means the F key will toggle the FPS counter on or off).
unbind [key] - Removes any bindings from the specified key.
unbindall - Removes bindings from all keys.
alias [aliasname, command] - Gives a command a short name (e.g. alias taunt echo I am your new King! changes 'taunt' into a command which spits out "I am your new King" when used). Use alias as a shortcut for long or complex command strings.
key_findbinding [command] - Find the key bound to the specified command.
key_listboundkeys - Lists all the keys which currently have a binding.