InfoPath allows you to create drop-downs and other items that can populated from sources external to the form template itself. For example, if you would like to have a drop-down control in your form template, you can have it obtain data from an external data source. See my screenshot:
http://img192.imageshack.us/img192/9020/datafromextsource.jpgAs far as having a drop-down that depends upon the selection of another drop-down... this functionality exists. I wasn't sure how to do this, but someone on the forums explained it to me the other day.
InfoPath allows for multiple views. You can setup views based on user roles (that you setup). You can add individual users, groups, etc.
http://img192.imageshack.us/img192/6696/userroles.jpgYou are able to apply plenty of rules and conditional formatting that will allow or disallow controls to be displayed, disabled, hidden, etc.
I am not sure if InfoPath can accomplish what you are trying to achieve, but hopefully there is a little information in my post that will help you.
P.S. I highly suggest the book
Designing Form for Microsoft Office InfoPath and Form Services 2007 by Scott Roberts and Hagen Green. I just started using InfoPath about 2 months ago with no experience in the application or with coding, and I feel that I can do some pretty awesome things now. I come here almost every day for help when designing form templates. There are a few contributors that always give great feedback if you have questions on how to perform certain actions when developing your form templates.
P.S.S. As far as code:
http://img192.imageshack.us/img192/3636/infopathcode.jpg