So I need to add UIDragScrollView to both container (as I want to be able to scroll by dragging "empty" background or scrolling mouse wheel over it) and children colliders. However it's rather unfortunate to have UIDragScrollView on children cause it complicates constructing windows from prefabs (for various reasons I have to do it in runtime) and critically breaks modularity of prefabs (my item prefabs now need a script that is valuable in the specific context only, and even worse - has nothing to do with their own behaviour). This can be hacked around this way or another though.
However, I wonder if the following feature is possible in NGUI's future: add properties to the widget to allow it to ignore specific types of events in which case those events are passed to the collider attached to the widget with smaller depth. So in my case if container background has a collider and a widget of depth 1, and children have colliders and widgets of depth 2, I could set "OnScroll" events to be ignored by children colliders, and that would pass them to the widget behind (container) - and allow to scroll my scrollview with mouse wheel without need for UIDragScrollView on them. This is a bubbling event in terms of WPF, and I can see it especially useful for OnScroll and OnTooltip events. I know about UIEventTrigger and legacy UIForwardEvent, but they are no way better then UIDragScrollView - they require knowing the forward target and so work bad with prefabs. The bubbling doesn't need the target - the event is just passed to the widget below.
Of course this is not the most important feature ever, but would be really nice to have one day (or any other solution addressing this issue).
But for now thanks a lot for your help, my issue is solved (not in ideal way but still).