Both require
and library
do non-standard evaluation as a convenience, but you can suppress this with a parameter. Try changing your code to:
require(package, character.only = TRUE)
Demonstration:
> strangeName <- "sets"
> require(strangeName, character.only=TRUE)
Loading required package: sets
Attaching package: ‘sets’
The following object is masked from ‘package:data.table’:
set