Compute a value (and update a CSV record), based on prior value
First question - no, there is no way to get rid of this "initial" value completely. There is, however, a way to make it more intuitive that the values is "missing" - the Option type. Pass None as initial state, and return Some from then on. This will also allow you to elegantly get rid of that initial value by using Seq.choose.

Second question - easy: just make target first parameter of the folder function and pass it in via partial application:

let updateBarValue target state (line:string) = 
   let effectiveState =
      match state with 
      | None -&gt; line
      | Some s -&gt; s
   Some (buildLineWithBarValue (effectiveState, target) line)

File.ReadLines(inFile) 
   |&gt; Seq.map appendEmptyColumnForBarValue // add the col to hold the new barValue
   |&gt; Seq.scan (updateBarValue target) None // compute the barValue, based on prev state and target
   |&gt; Seq.choose id // get rid of the initial input
   |&gt; Seq.iter outFile.WriteLine


As an aside, I noticed your tendency to tuple function arguments. That is generally considered bad form, unless arguments inherently "belong together" - e.g. point coordinates, - because curried arguments give more freedom. To this end, I would make buildLineWithBarValue's arguments curried as well.