The other answer on this question is definitely the simplest, most straightforward way to accomplish what you're trying to do. In a vacuum, I would absolutely suggest you use content types.
In the interest of ensuring the question is fully answered, there are two more ways we can accomplish cascading choices.
InfoPath forms are built for the express purpose of answering some of the issues associated with the flat nature of SharePoint list forms. You can add rules that dictate formatting on the form, such as "If RequestType =/= 'Hardware', hide HardwareQuestions" and vice versa for Software.
Upsides of InfoPath: hugely powerful, lots of features, super easy to pull in data from other lists/libraries/sites, etc.
Downsides of InfoPath: if you don't have Enterprise, then you can't use browser-enabled forms, which shifts the user to the InfoPath Form Filler (... I think? I know that's true in 2010, we haven't migrated to 2013 yet) which is kind of a crappy user experience, depending on the user. InfoPath can be a little too complicated sometimes, and if you're not sure what you're doing, working in the designer can be a little overwhelming.
Here's a really basic breakdown of InfoPath.
SPServices, by the right and honorable Marc Anderson, is a really popular and powerful jQuery library that can do this for you.
Here's a great post on how to do exactly what you're asking for.
And here's a whole series of all the great things you can do with SPServices.
Upsides of SPservices (or other jQuery): It's reasonably easy to implement if you know where to put the code. It's client-side, so if you don't have access to central administration, it's a pretty good solution.