In programming, anyway, there are several modes of "determinism". A semi-determinate procedure succeeds at most once, a determinate procedure succeeds exactly once, a multideterminate procedure succeeds more than once and a non-determinate procedure succeeds an unspecifiable amount of times.
As for physical determinism, the general idea is that, if you knew the state and position of every particle in the universe at any given moment, then you could predict the state and position of every particle in the future. Of course, that is physically impossible, but it also requires that given the universal state, each particle interaction would only have one outcome (otherwise you could not predict the future determinately, only statistically). However, experiments with relativity seem to have demonstrated conclusively that more than one outcome occurs, and that different outcomes occur simultaneously given different frames of reference.
So, while the universe certainly displays deterministic characteristics, it is most likely only partly deterministic and partly non-deterministic, the latter creating variations in the former.