You could consider generalized linear modeling with a different error distribution that can't go negative, like negative binomial regression for discrete values (are your scores all whole numbers?), gamma regression for continuous values, or beta regression for continuous values with both a minimum and maximum score.
It's still possible to have a negative intercept in negative binomial or beta regression, but one interprets the coefficients differently, so $\hat y\ge0$ if the predictor = 0. For a simulated example of NB regression in r, library(MASS);set.seed(8);x=rnorm(99);y=rnbinom(99,1,.9);glm.nb(y~x)$coefficients[1]
finds an intercept = -2.63, but predict(glm.nb(y~x),newdata=data.frame(x=0),type='response')
predicts $\hat y(0)=.07$.
Beta regression: library(betareg);set.seed(8);y=rbeta(99,.1,1);x=rnorm(99);betareg(y~x)
gives an intercept = -2.61, but predict(betareg(y~x),newdata=data.frame(x=0),type='response')
shows $\hat y(0)=.07$ again.