With Unix and Linux, any device can be mounted at just about any directory path in the filesystem. Once there, it will be used for all files stored under that directory. Additional mounts can be made under that directory, but that's beyond your need.
The problem with installing system software packages to such a device is that most packages use the standard /etc, /usr, /lib, and related directories to store their files. Moving the base system directories to such a device is possible, but tricky and error prone. Consider what would happen if the external drive is not connected at boot time when the O/S needs those files to start.
If you want to go that route, it's possible to mount the drive at a temporary location, such at /mnt, copy the existing files from the hard drive, change the /etc/fstab file to mount the new drive over the existing location, and reboot the system.
Another comment here - don't use the external drive with a FAT/VFAT filesystem (the default for most USB devices). Reformat it with a Linux filesystem. Otherwise, you'll run into problems with permissions and filename handling (linux filenames are case-sensitive while FAT/VFAT are case-insensitive).
Simpler, and perhaps a better use of such a setup, would be to place the user home directories on the device. One nice thing about such a setup is that the core O/S is decoupled from user files, making it much simpler to upgrade the O/S without fear of losing important data files.
If you have the time, inclination, and a means to recover the system to a working state shoud it become unsuable, play with it. It can be a great learning experience.
One final tip on managing space. Symbolic links are a great way to relocate files to manage space while keeping the original paths accessible. Note that this is managing file space "the hard way", but it's very effective. I've used it many times.