Keep in mind that all of these comments are specific to SQL Server 2000, they probably won't apply (at least "as is") to future versions. There are a number of ways to do what you've requested, but they all have caveats of one form or another.
C2 auditing is the holy grail. It audits everything, there are no loopholes, and you'll get more information about who did what, when, and how than you have any real use for. The caveat in this case is that it is expensive to implement, in terms of hardware, bandwidth, and administrator time spent on management.
You can get a really lightweight monitoring system set up using the SQL Profiler trace ability that you were considering. Watching for the sequences that might be of interest in a batch isn't outrageously difficult, and it can be quite effective IF you cover all of the bases.
You can also write a simple SQL-DMO application that will snapshot the procedures at some arbitrary frequency and check them into a source code archive such as VSS. This won't track the who, but it will give you a good estimate of the when and will permanently store the changes over time.
There are a number of other options, but they are either outrageously expensive, more difficult to manage than C2 (at least in my opinion), or have security holes that I find unacceptable.