How to change conditions of views filters programmatically? I have a view with a node type filter. I want to change it in some conditions. How do I change this filter in hook_views_query_alter()?
You specifically ask for altering the View programmatically, and that certainly is possible. I will however suggest an easier way. With Views 3, you can group your filters. This way, you can achieve the effect you are asking for by adding two separate groups of filters.

Group 1: Node:type == [type]

OR

Group 2:  User:role == [role] AND Node:type == [other_type]