do you mean you store a large set of possible text responses and the dialogue GUI can dynamically resize itsellf based on the amount of text?
Even more general than that - I need a dialogue to be whatever size it needs to be to hold its content. I should never need to specify its size. HTML does this - elements grow to the correct size for their contained elements.
So to create a grid like inventory system GUI for example, the children entities would have a 90 degree step and 0 degree random variation.
This sounds rather more complex than what a GUI should typically need to do. If I want a grid, I just want to be able to create a Grid object, and then feed it several rows of data.
So, a scrollable panel parent should either be able to dynamically resize itself or force a dynamic rescaling of the children objects to fit a fixed parent size. The input system is all based on one ray cast to determine where your mouse is currently located and which actions are available depend on the GUI prefab your on. I'm pretty surprised this requires custom shaders in NGUI. Are the items you want to fit within a scrollable parent all different sizes or something?
Usually when you have a scrollable region, you render everything within that region (optimisations aside) but the renderer can restrict the actual drawing operations to the viewport through which you view the region. Unity lacks that exact functionality so it's hacked in by using a custom shader on scrollable regions to achieve the same effect.
That's a separate issue from NGUI using colliders to stop you accidentally clicking on the objects that are invisible. That just implies that their input handling system is completely different to pretty much any other sensible GUI, which would propagate mouse clicks down through the GUI hierarchy to see what was clicked on, which would reject clicks on objects scrolled outside the viewport by design.
The size and shape of the items on the scrollable region should be irrelevant to how to implement the scrolling behaviour.