Customizing or authoring TFS project templates are very easy, you install TFPT (Team Foundation Power Tools) on your client, and there will be a "Process Editor" menu added to "Tools" menu in Visual Studio, where you can apply any customization easily.
So, basically you can create work item type for your requirements, or anything else which fits into the "Work Item" definition.
The problem with TFS 2008 is that the only way to link work items to each other is by "Links" tab, which has limited functionality, where traceability between requirements is a major issue in some projects.
Good news is that MS is adding "Full Traceability Support" in VS 2010, with requirement modeling in mind. Another good news is that VS 2010 Beta 2 is just released, and it also has a "Go-Live" license.
Another thing you should know, is that extending TFS and programming for it is really simple and easy. There is a really good API, and everything is in Managed Code, so all you need to do is to install VS SDK and start coding what you need to do in TFS. My point is, developing custom tools on top of TFS data infrastructure is an easily achievable thing.
For my projects, once I started evaluating what I can do with TFS for Requirements Management. Although it could be done, here's what I concluded:
1. Wait for VS 2010 (it was a year ago, now the wait is over!)
2. Develop a custom tool for my team with very basic requirement management functionality, and with support of creating work items on TFS automatically. (Integration with TFS)
For point 1, we're almost there (VS 2010 Beta 2 is out) and for Point 2, we've developed a tool already, but it's still not mature enough to go to production. I haven't tried VS 2010 traceability and support for requirements management yet, but it's something I'll do before taking any steps further on my tool.