A lot of variables here to consider.
A full drive is not necessarily a bad thing if you have a lot of system memory. You can always disable the swap file (virtual memory) to avoid using your drive for low-priority OS tasks.
A fragmented drive is not a good thing. If the data the system wants to retrieve is all over the platter it will take much longer to read all of the bits it needs. On multi-platter drivers this can get quite messy.
OS Like Windows 7 and up will automatically defrag when the system is idle. Not quite as good as a full system defrag, but it should considerably lengthen the time between manual defrags.
All programs more or less add extensions and add-ins to Windows. Games tend to include the latest C++ Redistributables, .NET Frameworks, and other extensions to the OS. The more programs you install the slower things like system boots will be. You should also see a slight increase in the amount of memory that the system uses when idle.
Fast systems are simple systems, but if you use one computer for everything, just try and keep less used data on slower media types.
ReadyBoost is another interesting option if you want to increase the system speed a little. Basically just uses a fast USB drive (Flash drive) in place of the normal swap space. Not particularly useful since it came out after the introduction of SSDs which is the best way to improve system performance.