Sorry for digging up this old topic, but all proposed algorithms on this thread are wrong!
This problem is, in fact, NP-hard (and even NP-complete): The paper "Even Cycles in Directed Graphs" by Carsten Thomassen proves in Proposition 2.1 that the problem of finding an odd / even length directed cycle in a digraph through a given edge (!) is NP-complete. Now, we can in fact solve this problem using the algorithm described in this thread: Choose weight = 1 for every edge. Let e be the selected edge that an even cycle should pass through, say e = (v,w). Now, find an odd path from w to v. This path exists if and only if there exists an even cycle through e. This shows that this algorithm must be wrong.
I believe that the suggested algorithm does return an odd-length WALK though, but not a path (vertices may be repeated).
Please upvote this reply so people don't find false info on this thread!
For sake of completeness, I will state some info on this and similar problems: It is NP hard to find an odd or even length path in a digraph between two vertices. It is NP hard to find an odd or even length cycle going through a fixed edge in a directed graph. However, it is polynomial-time solvable to find an odd directed cycle in a digraph. The intuition behind this is the following: If we find an odd walk (repeated vertices), it must contain an odd cycle too. It's just not necessarily the case that this odd cycle runs through the edge we want it to run through. Finding a shortest odd-length cycle is also possible (algorithm can be found in the paper mentioned above). Regarding even-length cycles in digraphs: This problem is polynomial-time solvable but was, for a very long time, unsolved, see https://cstheory.stackexchange.com/questions/19703/finding-even-cycle-in-directed-graphs/19704 .