HLLib is a package library for Half-Life that abstracts several package formats and provides a simple interface for all of them.
HLExtract is a command line utility written in C that can load all HLLib supported packages and extract multiple items from them while maintaining their directory structure
http://nemesis.thewavelength.net/index.php?p=35