Future versions of CHARMM (c32+) will compute H-bond lifetime histograms via COOR HBOND, but for now you'd have tabulate that data yourself from the detailed data produced by the VERBose option. You'd probably have to write a program of some sort to do that.
With the current COOR HBOND (corman.doc) implementation, by using the solute as the first atom selection and water as the second (w/o VERBose), you can get a summary listing of solute H-bond sites and both the average occupancy (frames with H-bond/number of frames analyzed) and the average lifetime. Apply this to the protein alone, DNA alone, and protein:DNA complex, and you get the water part of the story.
(If one assumes that H-bond breaking is a Poisson process with a simple exponential decay, the average is about equal to the std dev, so the average lifetime could be used to estimate the decay.)
For the other part of the story, alternately use the protein and the DNA as the first atom selection, with the other as the second, to get listings of the protein and DNA sites involved in stabilizing the complex.
If you used PBC, it may be necessary to use MERGE COOR RECENTER first (dynamc.doc), so that the H-bond counts won't be lowered by missing molecules when the solute(s) are at the cell boundary. As with lifetime histograms, future versions of COOR HBOND will include provisions to handle PBC directly (for most translation-only shapes).