Vector bundle is orientable $\iff$ its classifying map lifts to a classifying map over $BSO$ The oriented Grassmannian forms a double cover of the un-oriented Grassmannian $\pi\colon BSO\rightarrow BO$. 
We say that a vector bundle $E\rightarrow B$ is orientable if every fibre has an orientation and for any $b\in B$ there is a neighborhood $U$ with a local trivialization that preserves the orientation of $\mathbb R^n$ fibrewise. 
Let $E\rightarrow B$ be a vector bundle with classifying map $f\colon B\rightarrow BO$. I want to show that $E$ is orientable if and only if the map $f$ factors through $\pi$.
Intuitively I think it is enough to show that $E$ is orientable if and only if it has a classifying map $f\colon E\rightarrow BSO$, but I am struggling to do this precisely.
 A: This answer might be slightly overkill in its generality, but I find that understanding the orientation double-cover (as well as the homotopy quotient/Borel construction) is a good anchor point for understanding orientability and more general "structure$\iff$lift" problems for bundles.
WLOG assume $B$ is connected, and let $E\to B$ be a vector bundle of positive rank; for simplicity let $B$ be paracompact and assume we've chosen a metric on $E$ (we might not actually need to make this simplification). 
For a vector space $V$ of positive dimension, the set of orientations $\mathfrak{o}(V)$ is the set of ordered bases of $V$ modulo $SL(V)$, the group of linear transformations with positive determinant. The general linear group $GL(V)$ acts freely and transitively on $\mathfrak{o}(V)$ (by acting on ordered bases) and the stabilizer subgroup of any orientation is $SL(V)$, so a choice of orientation for $V$ induces a bijection $$\mathfrak{o}(V) \cong GL(V)/SL(V)\cong O(V)/SO(V) \cong \{\pm 1\}$$
and in particular every vector space has exactly two orientations, and $L_*(o) = \frac{det(L)}{|det(L)|} \cdot o$ for $L\in GL(V)$ and $o\in\mathfrak{o}(V)$.
For the vector bundle $E\to B$ consider the orientation double-cover, which as a set is defined as $\mathfrak{o}(E) = \bigsqcup_{b\in B} \mathfrak{o}(E_b)$. There is a topology on $\mathfrak{o}(E)$ (with many equivalent descriptions) making it a double-cover of $B$, and more precisely it is the double cover of $B$ associated to $E$ via the determinant representation $det\colon O(n) \to \mathbb{Z}/2$. (Intuitively, it has the same structure group as $E$ and twists over $B$ in the same way, but you replace the $\mathbb{R}^n$ fibres with $\mathfrak{o}(\mathbb{R}^n)$ and a linear transformation acts on an orientation via its determinant.) 
Once the orientation double-cover has been properly constructed (for example, via the discussion below), the result that you want is a corollary of the following lemmata whose proofs I leave to you:
Lemma 1: An orientation of $E$ is equivalent to a section of $\mathfrak{o}(E)$.
Lemma 2: $BSO(n)$ is the orientation double-cover of $BO(n)$ (use the Grassmannian models). Moreover, it is the universal orientation double-cover: specifically, if $c\colon B \to BO(n)$ is a classifying map for $E$ then $\mathfrak{o}(E) \cong c^*(BSO(n))$.
Lemma 3: Let $\pi\colon Z \to Y$ and $f\colon X \to Y$ be any continuous functions. Then a continuous lift of $f$ along $\pi$ is equivalent to a continuous section of the canonical map $f^* Z \to X$.

The classical picture of "replacing the fibre" is found in Steenrod $\S 3$, where you decompose a bundle $E\to B$ into local trivializations $U_\alpha \times F$ and transition functions $g_{\alpha,\beta}\colon U_\alpha \cap U_\beta \to G$, and then if $F'$ is any $G$-space we can use the same transition functions to glue together all of the pieces $U_\alpha \times F'$ into a new bundle $E' \to B$ with fibre $F'$. The most important example of this is if $F'=G$ and $G$ acts on itself by left multiplication: then $E'$ is a principal $G$-bundle, the so-called "underlying principal bundle". 
This is a perfectly suitable way to rigorously construct $\mathfrak{o}(E)$, where our new model fibre is $F' = \mathfrak{o}(\mathbb{R}^n)$, and $G=O(n)$ acts on $F'$ via the determinant. The major drawback of this approach in general is that it always involves a choice of bundle atlas, and to construct maps out of the space you always have to check compatibility with the transition functions. The more modern "coordinate free" way to work with fibre changes is the Borel construction, also known as a homotopy-quotient. For a group $G$, if $X$ and $Y$ are right and left $G$-spaces respectively, define
$$ X\times_G Y = X \times Y /\{(xg,y) \sim (x,gy)\} $$ 
To gain some familiarity with this construction try the following two exercises. For both exercises suppose $P$ is a principal $G$-bundle over $B \cong P/G$, and let $F$ be any left $G$-space.
Exercise: Show that $P\times_G F$ is a bundle over $B$ with fibre $F$. 
Exercise: (Naturality) If $f\colon B' \to B$ is any continuous function, then $$f^*(P\times_G F) \cong f^*(P) \times_G F$$ as bundles over $B'$ with fibre $F$.
So, given a principal $G$-bundle, we can plug in an arbitrary $G$ space for the fibre, and this process is natural wrt continuous maps. However, the Borel construction does not provide us with a way of constructing the underlying principal bundle, and we still need the construction from Steenrod for this purpose. However, once the following result is established you're off to the races:

Let $E\to B$ be a fibre bundle with model fibre $F$ and structure group $G$, and let $P_E$ be the underlying principal $G$ bundle constructed as in Steenrod. Then $$P_E \times_G F \cong E.$$

This result confirms that, if we use the Steenrod construction to make the underlying principal bundle, then plugging in fibres with the Borel construction has the same effect as the Steenrod construction. To prove it you will have to choose a bundle atlas and do all the annoying compatibility checks, but this is the one time that you need to do it.
Now, with this convenient construction we can define the orientation double-cover as
$$\mathfrak{o}(E) = Fr(E) \times_{O(n)} \mathfrak{o}(\mathbb{R}^n)$$
where the principal $O(n)$-bundle $Fr(E)$ is the frame bundle of $E$ and as above the structure group $O(n)$ acts on $\mathfrak{o}(\mathbb{R}^n)$ via the determinant. Try to prove Lemmas 1 and 2 above now, using this construction.
A: Here is a much more elementary and straightforward answer.
Let 
$$BO(n) = \{ P \subset \mathbb{R}^\infty \mid P\text{ is a vector subspace of dimension }n \}.$$
For $V$ a vector space let $\mathfrak{o}(V)$ denote the set of orientations. Then 
$$BSO(n) = \bigsqcup_{P\in BO(n)}\{ P\} \times \mathfrak{o}(P)$$
has a standard topology making $BSO(n) \to BO(n)$ a non-trivial double cover.
Now let $E\to B$ be a vector bundle, with classifying map $f\colon B \to BO(n)$, and fix an isomorphism $E \cong f^*\gamma_n$ (where $\gamma_n^{(+)}$ is the universal (oriented) $n$-plane bundle). Suppose there is an $f'\colon B \to BSO(n)$ such that $\pi\circ f' = f$, or in other words $f^*\gamma_n\cong f'^*\gamma_n^+$ as un-oriented vector bundles. We want to show that the existence of $f'$ lets us continuously choose an orientation on each fibre of $E$. But for $b\in B$ the fibre $E_b$ is canonically identified with $f(b)\subset \mathbb{R}^\infty$ because $f$ is a classifying map, so since the point $f'(b) = (f(b), o)$ satisfies $o\in \mathfrak{o}(f(b))$ we can pull it back to get an orientation $f^*(o)$ on $E_b$. Since $BSO(n) \to BO(n)$ is a covering space and $f'$ is continuous the values $f'(x)$ in a small neighbourhood of $b\in B$ will be determined by $f'(b)$, so your second condition will be satisfied.
