I have some experience with UT3, but I'm just getting started with the UDK, and I have a few questions about the degree of control over the rendering you have.
I'll start with what I expect is least likely and go from there.
I gather that, despite the presence of several HLSL shader sources in the UDK distribution (with the extension .usf), there is no means of implementing your own shaders outside of the material editor; is this correct? (I know about the Custom node in the material editor, but it's very limited, and unwieldy for all but the simplest logic.)
I understand that UE3 employs deferred rendering. I know you can, for example, access the color and depth at the current pixel in a post process. Is there any means for accessing these or other G-buffer attributes in a more general way? (Normals, position, values at neighboring pixels...)
Are render targets supported in a general way? For the sake of argument, would it be possible to set up a camera to render depth from an alternate POV, then do shadow map-style depth comparisons while rendering the main view?
Is it possible to override all the standard materials on the client, such as those being used for the terrain or BSP geometry in the current level? (For alternate vision modes and things of that nature.)
1) Unfortunately the custom node is the only way to get HLSL into UDK materials.
2) UE3 doesn't do full deferred, so only color and depth are available in postprocess effects. There's currently no node that lets you access position at the current pixel, but it would be very useful (and this calculation is done in lots of shaders like shadow filtering).
3) Rendering from alternate POV's is supported through scene captures, but the only attribute that can be captured is color.
4) This is only possible with changes to engine code.
Basically all the things you are asking about require full access to UE3 source.