I've checked this against the contents of the plain.bst file, rather thanrelying on dimly recalled assertions about what bibtex does, as per the post of mine I deleted... plain.bst treats titles in one of two ways, using the functions it defines, first, format.title, used, e.g., for @article, which lowercases, and then format.btitle, used for @book, which puts the title in emphasis without touching the capitalisation.
Rules for capitalising titles are complex, complex enough that one can't expect a .bst file to completely automate it. For example, Chicago Manual of Style says one should "Lowercase prepositions, regardless of length" with a list of examples. But prepositionhood is a semantic role, that is syntactically generative: CMoS gives as an example preposition "according to". And one of the exceptions is to capitalise when the preposition is stressed: e.g., in "Alice Through the Looking Glass", where stress isn't even semantic, but a pragmatic property of the word. So it's not the bst's role.
So the Right Thing is to put title strings in title case, protecting the capitalisation of proper names with {}s (e.g., From {B}rouwer to {H}ilbert). Do this with articles too, since some reflist styles, e.g., MLA, put article titles into title case, but most scientif styles lowercase them.
plain.bst gets one thing wrong: for @article, it does not consider colons, which are used to indicate subtitles. So protect the capital letter after colons.