  We prove a constant term theorem which is useful for finding weight
polynomials for Ballot/Motzkin paths in a strip with a fixed number of
arbitrary `decorated' weights as well as an arbitrary `background' weight. Our
CT theorem, like Viennot's lattice path theorem from which it is derived
primarily by a change of variable lemma, is expressed in terms of orthogonal
polynomials which in our applications of interest often turn out to be
non-classical. Hence we also present an efficient method for finding explicit
closed form polynomial expressions for these non-classical orthogonal
polynomials. Our method for finding the closed form polynomial expressions
relies on simple combinatorial manipulations of Viennot's diagrammatic
representation for orthogonal polynomials. In the course of the paper we also
provide a new proof of Viennot's original orthogonal polynomial lattice path
theorem. The new proof is of interest because it uses diagonalization of the
transfer matrix, but gets around difficulties that have arisen in past attempts
to use this approach. In particular we show how to sum over a set of implicitly
defined zeros of a given orthogonal polynomial, either by using properties of
residues or by using partial fractions. We conclude by applying the method to
two lattice path problems important in the study of polymer physics as models
of steric stabilization and sensitized flocculation.
